Sau*_*nda 7 haskell haskell-stack
stack允许使用该stack.yaml文件将 git 存储库定义为包。是否可以直接通过命令行执行以下操作:
stack install --resolver=lts-12.1 git@github.com:saurabhnanda/some-repo.git
Run Code Online (Sandbox Code Playgroud)
用例:安装我在docker构建过程中编写的命令行工具。我想避免克隆 repo然后构建它。这有简写吗?
编辑
新的解决方案
提交答案后,我想到了一个单独的解决方案。
custom-snapshot.yaml您可以在存储库中创建一个自定义文件来扩展某些现有快照,例如lts-15.3。将包添加到其中的方式与将其添加到stack.yaml. 安装该工具时的要点:
$ stack install --resolver https://raw.githubusercontent.com/saurabhnanda/my-cool-tool/master/custom-snapshot.yaml my-cool-tool
Run Code Online (Sandbox Code Playgroud)
甚至更短:
$ stack install --resolver github:saurabhnanda/my-cool-tool:custom-snapshot.yaml my-cool-tool
Run Code Online (Sandbox Code Playgroud)
免责声明- 我还没有尝试过,但理论上它应该有效。
旧的解决方案
我认为如果没有的话你就不能在 cli 上做到这一点stack.yaml
所以两个选择是:
stack new您的存储库添加到stack.yamlstack.yaml,可以通过编程方式找到其位置:$ stack install --resolver https://raw.githubusercontent.com/saurabhnanda/my-cool-tool/master/custom-snapshot.yaml my-cool-tool
Run Code Online (Sandbox Code Playgroud)
并将其添加到extra-deps:
$ stack install --resolver github:saurabhnanda/my-cool-tool:custom-snapshot.yaml my-cool-tool
Run Code Online (Sandbox Code Playgroud)
之后运行stack install my-cool-tool应该可以正常进行。
我认为编写一个 Haskell 脚本也不会太难,它可以为您执行这两种解决方案之一,并将主机作为要点,可以根据curl需要使用stack.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |