在开发或测试项目时,我通常需要运行一些重复的辅助任务。例如:下载一些数据,设置数据库,清理日志等。在Ruby版本中,它们由rake
处理,而其他语言则更喜欢make
或其他语言(任务偶尔依赖于其他任务) ,所以我们偶尔可能需要一个任务来执行它所依赖的子任务。
那么,是否有一些传统的方法在Haskell项目中组织这些任务?
我认为可以使用cabal
,但并非所有这些辅助任务都是关于运行Haskell代码的:有时它只是执行rm -r logs/*.log
或使用{{下载一些数据'的情况。 1}}或wget
。让cabal的curl
目标取决于其他的cabal目标是否有意义,那些,从Haskell代码运行shell脚本/命令? (如果可能在cabal中有依赖目标?)
或者,我可以使用test
,但是“平均哈斯克勒”(例如“外部”项目撰稿人)会发现这种直观吗?我相信在发现它需要首先为测试设置数据库然后运行一系列其他任务之前,首先会尝试make
。首先会注意到cabal test
吗?
我在Haskell项目中找不到任何处理这些辅助任务的方法。