如何在命令行上覆盖Shake配置

时间:2016-07-30 05:49:59

标签: shake-build-system

我通过usingConfigFile为每个项目维护小配置文件。我希望能够在命令行上覆盖任何这些设置。似乎使用shakeArgsWith(而不是shakeArgs)是第一步,但我没有看到明显的方法将其连接到getConfig生成的值。这样做有标准方法吗?

1 个答案:

答案 0 :(得分:2)

没有标准方法,但我知道有几个较大的构建系统发明了一些东西。 shakeArgsWithreadConfigFileusingConfig的组合应该这样做。像(未经测试)的东西:

main = shakeArgsWith shakeOptions [] $ \_ args -> return $ Just $ do
    file <- readConfigFile "myfile.cfg"
    usingConfig $ Map.union (argsToSettings args) file
    myNormalRules

其中argsToSettings是一个解析你的参数并将它们变成设置的函数 - 例如打破第一个=符号或类似符号。