如何将命令行参数传递给 stack exec

How do I pass command line arguments to stack exec

我正在构建一个 Haskell 程序,该程序使用命令行参数解析器和选项应用程序库。因为我正在使用堆栈来构建和测试我的项目,所以我想使用堆栈 exec 来执行我的程序传递命令行参数,比如

stack exec myprogram-exe -i myfile.txt

但是当我尝试执行时,Stack 给我以下消息:

Usage: stack exec CMD [-- ARGS (e.g. stack ghc -- X.hs -o x)] ([--plain] |
              ([--ghc-package-path] | [--no-ghc-package-path])
              ([--stack-exe] | [--no-stack-exe]) [--package ARG])

有没有一种方法可以将命令行参数传递给使用 Stack 执行的程序?

像这样的东西应该可以工作:

stack exec -- myprogram-exe -i myfile.txt

Michael Snoyman 所说的另一种方式应该是这样的:

$(stack exec which foo)

您还可以使用 stack build--exec 标志来在一个命令中构建和执行。可执行文件的参数必须包含在 exec 参数中。

$ stack build --exec "myexecutable arg1 arg2"