如何创建 haskell cabal 包作为 haskell 代码的输出?

How to create haskell cabal package as output of haskell code?

我正在处理的 Haskell 项目生成旨在用作独立 Haskell 库的代码(并对其进行测试)。我想将它包装在一个 cabal 项目中,因此它可以作为依赖项包含在内。

我搜索了 cabal 的库接口,因此我可以通过调用一些函数在给定目录中创建一个 cabal 项目,但找到了 none。

我当然可以 运行 bash 来自 Haskell 的命令,但它看起来很难看。

有什么工具可以很好地解决我的问题吗?

您需要 Cabal 包。您可以解析现有的 cabal 文件,更改数据结构中的内容,并重新生成文本表示。

编辑 回复评论:

我不知道有任何教程。我给出的 links 是针对 Haddock 文档的,数据类型和 Cabal 文件文本之间的映射非常简单。因此,您可能应该首先编写代码以在其上生成 PackageDescription value and then call writePackageDescription

请注意 emptyPackageDescription 的存在,您只需指定所需的字段即可。

(已将 link 删除为漂亮的打印机 class,因为 PackageDescription 不是成员。)