diff options
Diffstat (limited to 'GitAnnex/Options.hs')
-rw-r--r-- | GitAnnex/Options.hs | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/GitAnnex/Options.hs b/GitAnnex/Options.hs index 2cfdfafd2..88fad948a 100644 --- a/GitAnnex/Options.hs +++ b/GitAnnex/Options.hs @@ -11,11 +11,13 @@ import System.Console.GetOpt import Common.Annex import qualified Git.Config +import Git.Types import Command import Types.TrustLevel import qualified Annex import qualified Remote import qualified Limit +import qualified Limit.Wanted import qualified Option options :: [Option] @@ -33,30 +35,39 @@ options = Option.common ++ , Option ['x'] ["exclude"] (ReqArg Limit.addExclude paramGlob) "skip files matching the glob pattern" , Option ['I'] ["include"] (ReqArg Limit.addInclude paramGlob) - "don't skip files matching the glob pattern" + "limit to files matching the glob pattern" , Option ['i'] ["in"] (ReqArg Limit.addIn paramRemote) - "skip files not present in a remote" + "match files present in a remote" , Option ['C'] ["copies"] (ReqArg Limit.addCopies paramNumber) "skip files with fewer copies" , Option ['B'] ["inbackend"] (ReqArg Limit.addInBackend paramName) - "skip files not using a key-value backend" + "match files using a key-value backend" , Option [] ["inallgroup"] (ReqArg Limit.addInAllGroup paramGroup) - "skip files not present in all remotes in a group" + "match files present in all remotes in a group" , Option [] ["largerthan"] (ReqArg Limit.addLargerThan paramSize) - "skip files larger than a size" + "match files larger than a size" , Option [] ["smallerthan"] (ReqArg Limit.addSmallerThan paramSize) - "skip files smaller than a size" + "match files smaller than a size" + , Option [] ["want-get"] (NoArg Limit.Wanted.addWantGet) + "match files the repository wants to get" + , Option [] ["want-drop"] (NoArg Limit.Wanted.addWantDrop) + "match files the repository wants to drop" , Option ['T'] ["time-limit"] (ReqArg Limit.addTimeLimit paramTime) "stop after the specified amount of time" + , Option [] ["user-agent"] (ReqArg setuseragent paramName) + "override default User-Agent" , Option [] ["trust-glacier"] (NoArg (Annex.setFlag "trustglacier")) "Trust Amazon Glacier inventory" ] ++ Option.matcher where + trustArg t = ReqArg (Remote.forceTrust t) paramRemote setnumcopies v = maybe noop (\n -> Annex.changeState $ \s -> s { Annex.forcenumcopies = Just n }) (readish v) - setgitconfig v = Annex.changeGitRepo =<< inRepo (Git.Config.store v) - trustArg t = ReqArg (Remote.forceTrust t) paramRemote + 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 keyOptions :: [Option] keyOptions = @@ -65,3 +76,12 @@ keyOptions = , Option ['U'] ["unused"] (NoArg (Annex.setFlag "unused")) "operate on files found by last run of git-annex unused" ] + +fromOption :: Option +fromOption = Option.field ['f'] "from" paramRemote "source remote" + +toOption :: Option +toOption = Option.field ['t'] "to" paramRemote "destination remote" + +fromToOptions :: [Option] +fromToOptions = [fromOption, toOption] |