在NixOS中,如何从命令行运行Haskell可执行文件?

时间:2018-01-18 04:41:17

标签: haskell nixos

我正在尝试从命令行运行Haskell可执行文件,遵循this blog的示例。我的机器运行NixOS。

博客是关于将markdown literate haskell编译成html用于发布博客帖子。该过程的一个步骤是在.lhs文件上运行haskell程序hscolour以创建.mkd文件,其代码语法通过html和css突出显示。

cat blah.lhs | hscolour -lit -css > blah.mkd

但是,当我尝试运行此命令时,出现以下command not found错误。

$ cat blah.lhs | hscolour -lit -css > blah.mkd                                                            
hscolour: command not found

我不确定我遇到的这个问题是否特定于NixOS,或者更广泛地使用命令行可用的haskell可执行文件。 如何从命令行中提供hscolour等haskell可执行文件?

我尝试在已构建nix-shell的{​​{1}}内运行此命令。仍未找到hscolour命令。

hscolour

2 个答案:

答案 0 :(得分:5)

要了解两件事:

  1. 您不需要GHC,只需要hscolour中的可执行文件,您可以将其作为haskell.lib.justStaticExecutables haskellPackages.hscolour获取。

  2. hscolour的二进制文件名为HsColour,而不是hscolour

  3. 演示:

    $ nix-shell -p 'haskell.lib.justStaticExecutables haskellPackages.hscolour' --run 'HsColour --version'
    HsColour 1.24
    

答案 1 :(得分:2)

我将通过寻找an executable on NixOS来分享我发现的另一种方法。

$ `nix-build --no-out-link "<nixpkgs>"   -A haskellPackages.hscolour`/bin/HsColour --version                         
HsColour 1.24