diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-07-10 02:18:08 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-07-10 02:18:08 -0400 |
commit | bc9b0307cf427ab8ca6532c2ae4e0086e7ad4a4a (patch) | |
tree | 43d0984a200cb6ca68335da30b2574650955e2a4 /CmdLine/GlobalSetter.hs | |
parent | ccd76ebf641ad481e549da97c85f73101a3149fd (diff) |
improve global options display in --help
Put them in the help of subcommands, not the main command.
And, hide them from the synopsis, to avoid cluttering it.
Diffstat (limited to 'CmdLine/GlobalSetter.hs')
-rw-r--r-- | CmdLine/GlobalSetter.hs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/CmdLine/GlobalSetter.hs b/CmdLine/GlobalSetter.hs new file mode 100644 index 000000000..eb73f3f12 --- /dev/null +++ b/CmdLine/GlobalSetter.hs @@ -0,0 +1,24 @@ +{- git-annex global options + - + - Copyright 2015 Joey Hess <id@joeyh.name> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module CmdLine.GlobalSetter where + +import Types.DeferredParse +import Common +import Annex + +import Options.Applicative + +globalFlag :: Annex () -> Mod FlagFields GlobalSetter -> Parser GlobalSetter +globalFlag setter = flag' (DeferredParse setter) + +globalSetter :: (v -> Annex ()) -> Parser v -> Parser GlobalSetter +globalSetter setter parser = DeferredParse . setter <$> parser + +combineGlobalSetters :: [Parser GlobalSetter] -> Parser GlobalSetter +combineGlobalSetters l = DeferredParse . sequence_ . map getParsed + <$> many (foldl1 (<|>) l) |