如何在命令行上覆盖 Shake 配置
How to override Shake configuration on the command-line
我通过 usingConfigFile
维护每个项目读取的小配置文件。我希望能够覆盖命令行上的任何这些设置。似乎使用 shakeArgsWith
(而不是 shakeArgs
)是第一步,但我没有看到将其连接到 getConfig
产生的值的明显方法。是否有执行此操作的标准方法?
没有标准方法,但我知道几个较大的构建系统已经发明了一些东西。 shakeArgsWith
、readConfigFile
和 usingConfig
的组合应该可以做到。像(未经测试):
main = shakeArgsWith shakeOptions [] $ \_ args -> return $ Just $ do
file <- readConfigFile "myfile.cfg"
usingConfig $ Map.union (argsToSettings args) file
myNormalRules
其中 argsToSettings
是一些解析您的参数并将其转换为设置的函数 - 例如在第一个 =
符号或类似符号处中断。
我通过 usingConfigFile
维护每个项目读取的小配置文件。我希望能够覆盖命令行上的任何这些设置。似乎使用 shakeArgsWith
(而不是 shakeArgs
)是第一步,但我没有看到将其连接到 getConfig
产生的值的明显方法。是否有执行此操作的标准方法?
没有标准方法,但我知道几个较大的构建系统已经发明了一些东西。 shakeArgsWith
、readConfigFile
和 usingConfig
的组合应该可以做到。像(未经测试):
main = shakeArgsWith shakeOptions [] $ \_ args -> return $ Just $ do
file <- readConfigFile "myfile.cfg"
usingConfig $ Map.union (argsToSettings args) file
myNormalRules
其中 argsToSettings
是一些解析您的参数并将其转换为设置的函数 - 例如在第一个 =
符号或类似符号处中断。