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