РЕДАКТИРОВАТЬ
Новое решение
Сразу после отправки ответа я подумал об отдельном решении.
Вы можете создайте пользовательский файл 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
или еще короче :
$ stack install --resolver github:saurabhnanda/my-cool-tool:custom-snapshot.yaml my-cool-tool
Отказ от ответственности - я не пробовал это, но в теории это должно работать.
Старое решение
Я не думаю, что вы можете сделать это в кли без stack.yaml
Итак, есть два варианта:
- либо создать временный проект с
stack new
, добавить свой репозиторий в stack.yaml
- или добавить ту же информацию в глобальный
stack.yaml
, местоположение которого можно найти программно:
$ stack path --config-location
/home/saurabhnanda/.stack/global-project/stack.yaml
и добавьте это к extra-deps
:
- github: saurabhnanda/some-repo
commit: master
subdirs:
- my-cool-tool
После этого запуск stack install my-cool-tool
должен работать как обычно.
Я не думаю, что было бы слишком сложно написать сценарий Haskell, который мог бы выполнить одно из этих двух решений для вас, а хост - как сущность, которую можно curl
редактировать и выполнять по требованию с помощью stack
.