2016-07-30 16 views
2

Ich verwalte kleine Konfigurationsdateien pro Projekt gelesen über . Ich möchte diese Einstellungen in der Befehlszeile überschreiben können. Es scheint, mit shakeArgsWith (anstatt shakeArgs) ist der erste Schritt auf dem Weg, aber ich sehe keine offensichtliche Möglichkeit, das durch die Werte von getConfig durchdrahten. Gibt es dafür einen Standardansatz?So überschreiben Sie die Shake-Konfiguration in der Befehlszeile

Antwort

2

Es gibt keinen Standardansatz, aber ich weiß, dass mehrere größere Build-Systeme etwas erfunden haben. Eine Kombination von shakeArgsWith, readConfigFile und usingConfig sollte es tun. So etwas wie (nicht getestet):

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

Wo argsToSettings eine Funktion ist, die Ihre Argumente analysiert und verwandelt sie in Einstellungen - zum Beispiel brechen auf dem ersten = Symbol oder ähnliches.

Verwandte Themen