summaryrefslogtreecommitdiff
path: root/GitAnnex.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-01-26 00:17:38 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-01-26 00:17:38 -0400
commit6a97b10fcb3e1fa6a230d92a25b42ded587ff743 (patch)
treeb8a6ce70916c397c67788b47de6a389db8753969 /GitAnnex.hs
parent082b022f9ae56b1446b6607cf7851cd4f1d4f904 (diff)
rework config storage
Moved away from a map of flags to storing config directly in the AnnexState structure. Got rid of most accessor functions in Annex. This allowed supporting multiple --exclude flags.
Diffstat (limited to 'GitAnnex.hs')
-rw-r--r--GitAnnex.hs14
1 files changed, 10 insertions, 4 deletions
diff --git a/GitAnnex.hs b/GitAnnex.hs
index d9efdad2d..378b6e538 100644
--- a/GitAnnex.hs
+++ b/GitAnnex.hs
@@ -13,6 +13,7 @@ import qualified GitRepo as Git
import CmdLine
import Command
import Options
+import qualified Annex
import qualified Command.Add
import qualified Command.Unannex
@@ -65,15 +66,20 @@ cmds = concat
options :: [Option]
options = commonOptions ++
- [ Option ['k'] ["key"] (ReqArg (storeOptString "key") paramKey)
+ [ Option ['k'] ["key"] (ReqArg setkey paramKey)
"specify a key to use"
- , Option ['t'] ["to"] (ReqArg (storeOptString "torepository") paramRemote)
+ , Option ['t'] ["to"] (ReqArg setto paramRemote)
"specify to where to transfer content"
- , Option ['f'] ["from"] (ReqArg (storeOptString "fromrepository") paramRemote)
+ , Option ['f'] ["from"] (ReqArg setfrom paramRemote)
"specify from where to transfer content"
- , Option ['x'] ["exclude"] (ReqArg (storeOptString "exclude") paramGlob)
+ , Option ['x'] ["exclude"] (ReqArg addexclude paramGlob)
"skip files matching the glob pattern"
]
+ where
+ setkey v = Annex.changeState $ \s -> s { Annex.defaultkey = Just v }
+ setto v = Annex.changeState $ \s -> s { Annex.toremote = Just v }
+ setfrom v = Annex.changeState $ \s -> s { Annex.fromremote = Just v }
+ addexclude v = Annex.changeState $ \s -> s { Annex.exclude = v:(Annex.exclude s) }
header :: String
header = "Usage: git-annex command [option ..]"