是否可以在`stack exec`中创建程序别名?

时间:2017-08-14 19:47:33

标签: haskell haskell-stack

我有一个包含许多小型可执行目标的项目。由于您无法避免在项目中构建每个可执行文件的问题,每当源代码发生更改时,都需要花费很多时间。

所以相反,我试图让一个可执行文件通过检查其名称来确定自己的行为(可能通过使用getProgName):例如,我可以构建一个可执行文件名foo,以及两个针对它的软链接,一个名为progA,另一个名为progB:我希望它的行为类似于三个独立的程序:

  • foo [progA|progB]在缺少参数时打印帮助消息,或者如果progA等于其中任何一个,就像progBfoo一样运行
  • progA& progB:好像有分开的二进制文件

由于我不希望我的项目可执行文件全局公开,我通常只做stack build && stack exec -- <progName> [...args]。我的问题是:是否有可能在foo文件中有一个单独的可执行文件(即我的示例中为.cabal),而堆栈则需要一些内容才能使stack exec -- progA和{{1 }}?

我知道我可以从stack exec -- progB运行的环境中获取并解析PATH,并在那里进行相应的软链接,但我更喜欢一种不那么笨拙的方法。

0 个答案:

没有答案