Можно ли указать файл `stack.yaml` для скрипта на haskell? - PullRequest
0 голосов
/ 08 октября 2018

Допустим, у меня есть следующий скрипт в каталоге проекта haskell:

#!/usr/bin/env stack
-- stack --resolver lts-12.5 script

-- some imports here

main :: IO ()
main = do
  -- some code here

Я хотел бы использовать файл stack.yaml, который существует в каталоге проекта, чтобы получить необходимые пакеты, поскольку я хочу получить их из определенного коммита git вместо lts-12.5.

Я попытался добавить --stack-yaml stack.yaml после --resolver lts-12.5, но я получаю это предупреждение при запуске сценария: Ignoring override stack.yaml file for script command: stack.yaml.

Можно ли использовать мой stack.yaml файл для скрипта?или можно указать коммит git, из которого я хочу получить пакет (например, используя location с commit и git внутри stack.yaml)?

1 Ответ

0 голосов
/ 09 октября 2018

Этого можно добиться с помощью пользовательских файлов снимков.Например, в snapshot.yaml:

resolver: ghc-8.4.3
name: has-acme-missiles
packages:
- acme-missiles-0.3

В Main.hs:

#!/usr/bin/env stack
-- stack --resolver snapshot.yaml script
import Acme.Missiles

main :: IO ()
main = launchMissiles

Результаты в:

$ ./Main.hs 
Nuclear launch detected.
...