summaryrefslogtreecommitdiff
path: root/CmdLine/GitAnnex
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-07-10 00:55:53 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-07-10 01:39:06 -0400
commit56c0bf6c690ffddc4ac561393f4cd21d087b7ddb (patch)
tree745ab36efe39f693d776a16a73758e04409f74a1 /CmdLine/GitAnnex
parentea0f914261e4747de75339952c2d47374c5a7803 (diff)
convert global options (still not used)
Diffstat (limited to 'CmdLine/GitAnnex')
-rw-r--r--CmdLine/GitAnnex/Options.hs72
1 files changed, 46 insertions, 26 deletions
diff --git a/CmdLine/GitAnnex/Options.hs b/CmdLine/GitAnnex/Options.hs
index 4ec7bc875..8bc96a14d 100644
--- a/CmdLine/GitAnnex/Options.hs
+++ b/CmdLine/GitAnnex/Options.hs
@@ -19,6 +19,7 @@ import Types.Messages
import Types.Key
import Types.Command
import Types.DeferredParse
+import Types.DesktopNotify
import qualified Annex
import qualified Remote
import qualified Limit
@@ -26,34 +27,55 @@ import qualified Limit.Wanted
import CmdLine.Option
import CmdLine.Usage
--- Options that are accepted by all git-annex sub-commands,
+-- Global options that are accepted by all git-annex sub-commands,
-- although not always used.
-gitAnnexOptions :: [Option]
-gitAnnexOptions = commonOptions ++
- [ Option ['N'] ["numcopies"] (ReqArg setnumcopies paramNumber)
- "override default number of copies"
- , Option [] ["trust"] (trustArg Trusted)
- "override trust setting"
- , Option [] ["semitrust"] (trustArg SemiTrusted)
- "override trust setting back to default"
- , Option [] ["untrust"] (trustArg UnTrusted)
- "override trust setting to untrusted"
- , Option ['c'] ["config"] (ReqArg setgitconfig "NAME=VALUE")
- "override git configuration setting"
- , Option [] ["user-agent"] (ReqArg setuseragent paramName)
- "override default User-Agent"
- , Option [] ["trust-glacier"] (NoArg (Annex.setFlag "trustglacier"))
- "Trust Amazon Glacier inventory"
+gitAnnexGlobalOptions :: Parser GlobalSetter
+gitAnnexGlobalOptions = globalSetters
+ [ commonGlobalOptions
+ , globalSetter setnumcopies $ option auto
+ ( long "numcopies" <> short 'N' <> metavar paramNumber
+ <> help "override default number of copies"
+ )
+ , globalSetter (Remote.forceTrust Trusted) $ strOption
+ ( long "trust" <> metavar paramRemote
+ <> help "override trust setting"
+ )
+ , globalSetter (Remote.forceTrust SemiTrusted) $ strOption
+ ( long "semitrust" <> metavar paramRemote
+ <> help "override trust setting back to default"
+ )
+ , globalSetter (Remote.forceTrust UnTrusted) $ strOption
+ ( long "untrust" <> metavar paramRemote
+ <> help "override trust setting to untrusted"
+ )
+ , globalSetter setgitconfig $ strOption
+ ( long "config" <> short 'c' <> metavar "NAME=VALUE"
+ <> help "override git configuration setting"
+ )
+ , globalSetter setuseragent $ strOption
+ ( long "user-agent" <> metavar paramName
+ <> help "override default User-Agent"
+ )
+ , globalFlag (Annex.setFlag "trustglacier")
+ ( long "trust-glacier"
+ <> help "Trust Amazon Glacier inventory"
+ )
+ , globalFlag (setdesktopnotify mkNotifyFinish)
+ ( long "notify-finish"
+ <> help "show desktop notification after transfer finishes"
+ )
+ , globalFlag (setdesktopnotify mkNotifyStart)
+ ( long "notify-start"
+ <> help "show desktop notification after transfer completes"
+ )
]
where
- trustArg t = ReqArg (Remote.forceTrust t) paramRemote
- setnumcopies v = maybe noop
- (\n -> Annex.changeState $ \s -> s { Annex.forcenumcopies = Just $ NumCopies n })
- (readish v)
+ setnumcopies n = Annex.changeState $ \s -> s { Annex.forcenumcopies = Just $ NumCopies n }
setuseragent v = Annex.changeState $ \s -> s { Annex.useragent = Just v }
setgitconfig v = inRepo (Git.Config.store v)
>>= pure . (\r -> r { gitGlobalOpts = gitGlobalOpts r ++ [Param "-c", Param v] })
>>= Annex.changeGitRepo
+ setdesktopnotify v = Annex.changeState $ \s -> s { Annex.desktopnotify = Annex.desktopnotify s <> v }
parseRemoteOption :: Parser RemoteName -> Parser (DeferredParse Remote)
parseRemoteOption p = DeferredParse . (fromJust <$$> Remote.byNameWithUUID) . Just <$> p
@@ -177,13 +199,11 @@ parseCombiningOptions =
<|> shortopt '(' "open group of options"
<|> shortopt ')' "close group of options"
where
- longopt o h = globalOpt (Limit.addToken o) $ switch
- ( long o <> help h )
- shortopt o h = globalOpt (Limit.addToken [o]) $ switch
- ( short o <> help h)
+ longopt o h = globalFlag (Limit.addToken o) ( long o <> help h )
+ shortopt o h = globalFlag (Limit.addToken [o]) ( short o <> help h)
parseJsonOption :: Parser GlobalSetter
-parseJsonOption = globalOpt (Annex.setOutput JSONOutput) $ switch
+parseJsonOption = globalFlag (Annex.setOutput JSONOutput)
( long "json" <> short 'j'
<> help "enable JSON output"
)