diff options
author | Joey Hess <joey@kitenet.net> | 2011-09-18 18:21:42 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-09-18 18:21:42 -0400 |
commit | b9aa944b09e60badb99c65a87f5689e0ab9010e3 (patch) | |
tree | f7e72ecc47114f95a8989501b5935306ac2ebe7f /Options.hs | |
parent | 8a5a92480b9dcf691af1e8c4849cb71c4158b845 (diff) |
add --and --or --not -( and -)
I dislike -( and -), but without using a different option parser, can't
easily use bare parens.
--and and --or will become more useful once there are more interesting
limits than --exclude
Diffstat (limited to 'Options.hs')
-rw-r--r-- | Options.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Options.hs b/Options.hs index ee3ce6620..44d5f3674 100644 --- a/Options.hs +++ b/Options.hs @@ -14,6 +14,7 @@ import Control.Monad.State (liftIO) import qualified Annex import Types import Command +import Limit {- Each dashed command-line option results in generation of an action - in the Annex monad that performs the necessary setting. @@ -47,3 +48,15 @@ commonOptions = setforcebackend v = Annex.changeState $ \s -> s { Annex.forcebackend = Just v } setdebug = liftIO $ updateGlobalLogger rootLoggerName $ setLevel DEBUG + +matcherOptions :: [Option] +matcherOptions = + [ longopt "not" "negate next option" + , longopt "and" "both previous and next option must match" + , longopt "or" "either previous or next option must match" + , shortopt "(" "open group of options" + , shortopt ")" "close group of options" + ] + where + longopt o d = Option [] [o] (NoArg (token o)) d + shortopt o d = Option o [] (NoArg (token o)) d |