我正在尝试从命令行运行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
答案 0 :(得分:5)
要了解两件事:
您不需要GHC,只需要hscolour中的可执行文件,您可以将其作为haskell.lib.justStaticExecutables haskellPackages.hscolour
获取。
hscolour的二进制文件名为HsColour
,而不是hscolour
。
演示:
$ 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