summaryrefslogtreecommitdiff
path: root/Options.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-12-30 16:52:24 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-12-30 16:52:24 -0400
commit7a52b34e0631609d5d862c3ba100cc499b30b5fa (patch)
tree378440e7746ee941f1f777f0c23862d71e4693fe /Options.hs
parent88ff9e82fc3dcb653b2a116f1c162d98a1f6bdcf (diff)
add git-annex-shell command
This is not yet complete, as it does not allow starting rsync or scp.
Diffstat (limited to 'Options.hs')
-rw-r--r--Options.hs44
1 files changed, 44 insertions, 0 deletions
diff --git a/Options.hs b/Options.hs
new file mode 100644
index 000000000..684aed97d
--- /dev/null
+++ b/Options.hs
@@ -0,0 +1,44 @@
+{- git-annex dashed options
+ -
+ - Copyright 2010 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Options where
+
+import System.Console.GetOpt
+
+import qualified Annex
+import Types
+import Command
+
+{- Each dashed command-line option results in generation of an action
+ - in the Annex monad that performs the necessary setting.
+ -}
+type Option = OptDescr (Annex ())
+
+storeOptBool :: FlagName -> Bool -> Annex ()
+storeOptBool name val = Annex.flagChange name $ FlagBool val
+storeOptString :: FlagName -> String -> Annex ()
+storeOptString name val = Annex.flagChange name $ FlagString val
+
+commonOptions :: [Option]
+commonOptions = [
+ Option ['f'] ["force"] (NoArg (storeOptBool "force" True))
+ "allow actions that may lose annexed data"
+ , Option ['q'] ["quiet"] (NoArg (storeOptBool "quiet" True))
+ "avoid verbose output"
+ , Option ['v'] ["verbose"] (NoArg (storeOptBool "quiet" False))
+ "allow verbose output"
+ , Option ['b'] ["backend"] (ReqArg (storeOptString "backend") paramName)
+ "specify default key-value backend to use"
+ , Option ['k'] ["key"] (ReqArg (storeOptString "key") paramKey)
+ "specify a key to use"
+ , Option ['t'] ["to"] (ReqArg (storeOptString "torepository") paramRemote)
+ "specify to where to transfer content"
+ , Option ['f'] ["from"] (ReqArg (storeOptString "fromrepository") paramRemote)
+ "specify from where to transfer content"
+ , Option ['x'] ["exclude"] (ReqArg (storeOptString "exclude") paramGlob)
+ "skip files matching the glob pattern"
+ ]