summaryrefslogtreecommitdiff
path: root/Options.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-09-18 18:21:42 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-09-18 18:21:42 -0400
commitb9aa944b09e60badb99c65a87f5689e0ab9010e3 (patch)
treef7e72ecc47114f95a8989501b5935306ac2ebe7f /Options.hs
parent8a5a92480b9dcf691af1e8c4849cb71c4158b845 (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.hs13
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