Как получить стек для запуска дополнительных команд при сборке пакета haskell?

Я создал скрипт для компиляции моих программ на haskell (до сих пор это были простые скрипты, состоящие из одного исходного файла), который содержал до вызова ghc следующие строки:

echo "Running hlint"
hlint ${1}
echo "Running scan"
~/.cabal/bin/scan -j False ${1}
echo "Running doctest"
~/.cabal/bin/doctest ${1}

(${1} ссылаясь на один исходный файл.hs.)

Как сделать некоторую эквивалентную проверку при использовании стека для управления и сборки моих программ?

Я хотел бы настроить некоторые глобальные настройки, которые будут автоматически запускать эти команды в исходном коде при вызове stack build в любом из моих проектов.

1 ответ

Решение

Стек обеспечивает --exec флаг, который позволяет вам сделать это. Посмотрите документацию 'Flags' для полного примера, но мы можем увидеть такую ​​команду:

$ stack build --test --exec "echo Hi!"

куда --exec это "делать другие вещи" и --test запускает тесты.

В отношении вашего примера это может выглядеть так:

stack build \
  --exec "hlint foo" \
  --exec "~/.cabal/bin/scan -j False bar"
  --exec "~/.cabal/bin/doctest baz"
Другие вопросы по тегам