【发布时间】:2015-05-14 23:05:07
【问题描述】:
有没有办法自动更新 .cabal-file 中的 build-depends 字段?例如,如果我们从以下.cabal 文件开始:
name: HUnit
version: 1.1.1
synopsis: A unit testing framework for Haskell
homepage: http://hunit.sourceforge.net/
category: Testing
author: Dean Herington
license: BSD3
license-file: LICENSE
cabal-version: >= 1.10
build-type: Simple
library
build-depends: base >= 2 && < 4
exposed-modules: Test.HUnit.Base, Test.HUnit.Lang,
Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit
default-extensions: CPP
然后,安装一个包:
cabal install warp
现在,我必须将warp >=3.0 && <3.1 添加到build-depends 字段,使文件看起来像这样:
name: HUnit
version: 1.1.1
synopsis: A unit testing framework for Haskell
homepage: http://hunit.sourceforge.net/
category: Testing
author: Dean Herington
license: BSD3
license-file: LICENSE
cabal-version: >= 1.10
build-type: Simple
library
build-depends: base >= 2 && < 4, warp >=3.0 && <3.1
exposed-modules: Test.HUnit.Base, Test.HUnit.Lang,
Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit
default-extensions: CPP
我的问题是:我们如何自动更新这个文件?
【问题讨论】:
-
emacs haskell-mode 为我做到了,但我不知道通用解决方案。
-
@ReinHenrichs 我认为您提到的功能的代码是haskell-mode at github, search for defun haskell-cabal-section-add-build-dependency。我想知道 cabal 的贡献者是否做了类似的事情。
-
自动?基于什么?您肯定不希望所有已安装的软件包都包含在 build-depends 中吗?
-
它们可能是手工添加的。您可以在 GitHub 上查看该文件的历史记录:github.com/yesodweb/yesod/commits/master/yesod-core/…