Передать стек установить `--flag` для запуска стека? - PullRequest
0 голосов
/ 26 января 2019

Как передать флаг stack run, как я бы сделал с stack install --flag asd:qwe?

1 Ответ

0 голосов
/ 27 мая 2019

Я не смог найти способ сделать это, поэтому вот мой предложенный обходной путь:

Вместо использования stack run ... создайте приложение с помощью stack build и запустите программу напрямую.

Итак, вместо использования

# The Problem: This doesn't work because run doesn't recognize --flag

> stack run --flag asd:qwe

используйте следующий двухэтапный подход:

  1. stack build --flag asd:qwe
  2. ./path/to/your/executable/<your executable>

Если вы используете stack install вместо stack build, стек помещает скомпилированный двоичный файл в каталог local-bin. ¹ В документации предлагается добавить этот каталог в переменную $ PATH , это означает, что вы можете просто позвонить <your-executable>.

В остальной части этого ответа предполагается, что вы используете stack build.

В моей системе (Arch linux, май '19, стек 1.9.3.1), стек помещает скомпилированный двоичный файл в папку bin внутри local-install-root. (Покажите, используя stack path --local-install-root.)

Полный путь к исполняемому файлу должен быть <local-install-root>/bin/<executable-name>

¹ Согласно В руководстве пользователя регулярно возникает путаница относительно значения stack install. Это псевдоним stack build --copy-bins, который просто копирует двоичный файл в local-bin-path после сборки, что делает его общедоступным, если ваш $ PATH включает local-bin-path

...