2016-10-03 12 views
1

я сделал скрипт для компиляции моих программ Haskell (до сих пор только простые сценарии, состоящий в одном исходном файле), содержавшие, перед вызовом GHC, следующие строки:Как получить стек для выполнения дополнительных команд при создании пакета haskell?

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 в любом из моих проектов.

ответ

2

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

$ 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"