Merge branch 'master' into proxy-specialremotes
This commit is contained in:
commit
8fa4e25c1e
13 changed files with 33 additions and 14 deletions
|
@ -12,6 +12,8 @@ git-annex (10.20240532) UNRELEASED; urgency=medium
|
||||||
complaining about missing tree objects.
|
complaining about missing tree objects.
|
||||||
* Tab completion of options like --from now includes special remotes,
|
* Tab completion of options like --from now includes special remotes,
|
||||||
as well as proxied remotes and clusters.
|
as well as proxied remotes and clusters.
|
||||||
|
* Tab completion of many commands like info and trust now includes
|
||||||
|
remotes.
|
||||||
* P2P protocol version 2.
|
* P2P protocol version 2.
|
||||||
* Fix Windows build with Win32 2.13.4+
|
* Fix Windows build with Win32 2.13.4+
|
||||||
Thanks, Oleg Tolmatcev
|
Thanks, Oleg Tolmatcev
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{- git-annex command-line option parsing
|
{- git-annex command-line option parsing
|
||||||
-
|
-
|
||||||
- Copyright 2010-2023 Joey Hess <id@joeyh.name>
|
- Copyright 2010-2024 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU AGPL version 3 or higher.
|
- Licensed under the GNU AGPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
@ -109,9 +109,12 @@ gitAnnexCommonOptions = commonOptions ++
|
||||||
|
|
||||||
{- Parser that accepts all non-option params. -}
|
{- Parser that accepts all non-option params. -}
|
||||||
cmdParams :: CmdParamsDesc -> Parser CmdParams
|
cmdParams :: CmdParamsDesc -> Parser CmdParams
|
||||||
cmdParams paramdesc = many $ argument str
|
cmdParams paramdesc = cmdParamsWithCompleter paramdesc completeFiles
|
||||||
|
|
||||||
|
cmdParamsWithCompleter :: String -> Mod ArgumentFields String -> Parser CmdParams
|
||||||
|
cmdParamsWithCompleter paramdesc completers = many $ argument str
|
||||||
( metavar paramdesc
|
( metavar paramdesc
|
||||||
<> action "file"
|
<> completers
|
||||||
)
|
)
|
||||||
|
|
||||||
parseAutoOption :: Parser Bool
|
parseAutoOption :: Parser Bool
|
||||||
|
@ -597,3 +600,7 @@ completeRemotes' g input = do
|
||||||
completeBackends :: HasCompleter f => Mod f a
|
completeBackends :: HasCompleter f => Mod f a
|
||||||
completeBackends = completeWith $
|
completeBackends = completeWith $
|
||||||
map (decodeBS . formatKeyVariety . Backend.backendVariety) Backend.builtinList
|
map (decodeBS . formatKeyVariety . Backend.backendVariety) Backend.builtinList
|
||||||
|
|
||||||
|
completeFiles :: HasCompleter f => Mod f a
|
||||||
|
completeFiles = action "file"
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,10 @@ command name section desc paramdesc mkparser =
|
||||||
withParams :: (CmdParams -> v) -> CmdParamsDesc -> Parser v
|
withParams :: (CmdParams -> v) -> CmdParamsDesc -> Parser v
|
||||||
withParams mkseek paramdesc = mkseek <$> cmdParams paramdesc
|
withParams mkseek paramdesc = mkseek <$> cmdParams paramdesc
|
||||||
|
|
||||||
|
withParams' :: (CmdParams -> v) -> Mod ArgumentFields String -> String -> Parser v
|
||||||
|
withParams' mkseek completers paramdesc = mkseek
|
||||||
|
<$> cmdParamsWithCompleter paramdesc completers
|
||||||
|
|
||||||
{- Uses the supplied option parser, which yields a deferred parse,
|
{- Uses the supplied option parser, which yields a deferred parse,
|
||||||
- and calls finishParse on the result before passing it to the
|
- and calls finishParse on the result before passing it to the
|
||||||
- CommandSeek constructor. -}
|
- CommandSeek constructor. -}
|
||||||
|
|
|
@ -22,7 +22,7 @@ cmd = withAnnexOptions [jsonOptions] $
|
||||||
data DeadOptions = DeadRemotes [RemoteName] | DeadKeys [Key]
|
data DeadOptions = DeadRemotes [RemoteName] | DeadKeys [Key]
|
||||||
|
|
||||||
optParser :: CmdParamsDesc -> Parser DeadOptions
|
optParser :: CmdParamsDesc -> Parser DeadOptions
|
||||||
optParser desc = (DeadRemotes <$> cmdParams desc)
|
optParser desc = (DeadRemotes <$> cmdParamsWithCompleter desc completeRemotes)
|
||||||
<|> (DeadKeys <$> many (option (str >>= parseKey)
|
<|> (DeadKeys <$> many (option (str >>= parseKey)
|
||||||
( long "key" <> metavar paramKey
|
( long "key" <> metavar paramKey
|
||||||
<> help "keys whose content has been irretrievably lost"
|
<> help "keys whose content has been irretrievably lost"
|
||||||
|
|
|
@ -14,8 +14,8 @@ import Logs.UUID
|
||||||
cmd :: Command
|
cmd :: Command
|
||||||
cmd = command "describe" SectionSetup
|
cmd = command "describe" SectionSetup
|
||||||
"change description of a repository"
|
"change description of a repository"
|
||||||
(paramPair paramRemote paramDesc)
|
(paramPair paramRepository paramDesc)
|
||||||
(withParams seek)
|
(withParams' seek completeRemotes)
|
||||||
|
|
||||||
seek :: CmdParams -> CommandSeek
|
seek :: CmdParams -> CommandSeek
|
||||||
seek = withWords (commandAction . start)
|
seek = withWords (commandAction . start)
|
||||||
|
|
|
@ -20,7 +20,7 @@ import qualified Data.Map as M
|
||||||
|
|
||||||
cmd :: Command
|
cmd :: Command
|
||||||
cmd = noMessages $ command "group" SectionSetup "add a repository to a group"
|
cmd = noMessages $ command "group" SectionSetup "add a repository to a group"
|
||||||
(paramPair paramRemote paramDesc) (seek <$$> optParser)
|
(paramPair paramRepository paramDesc) (seek <$$> optParser)
|
||||||
|
|
||||||
data GroupOptions = GroupOptions
|
data GroupOptions = GroupOptions
|
||||||
{ cmdparams :: CmdParams
|
{ cmdparams :: CmdParams
|
||||||
|
@ -29,7 +29,7 @@ data GroupOptions = GroupOptions
|
||||||
|
|
||||||
optParser :: CmdParamsDesc -> Parser GroupOptions
|
optParser :: CmdParamsDesc -> Parser GroupOptions
|
||||||
optParser desc = GroupOptions
|
optParser desc = GroupOptions
|
||||||
<$> cmdParams desc
|
<$> cmdParamsWithCompleter desc completeRemotes
|
||||||
<*> switch
|
<*> switch
|
||||||
( long "list"
|
( long "list"
|
||||||
<> help "list all currently defined groups"
|
<> help "list all currently defined groups"
|
||||||
|
|
|
@ -116,7 +116,7 @@ data InfoOptions = InfoOptions
|
||||||
|
|
||||||
optParser :: CmdParamsDesc -> Parser InfoOptions
|
optParser :: CmdParamsDesc -> Parser InfoOptions
|
||||||
optParser desc = InfoOptions
|
optParser desc = InfoOptions
|
||||||
<$> cmdParams desc
|
<$> cmdParamsWithCompleter desc (completeFiles <> completeRemotes)
|
||||||
<*> switch
|
<*> switch
|
||||||
( long "bytes"
|
( long "bytes"
|
||||||
<> help "display file sizes in bytes"
|
<> help "display file sizes in bytes"
|
||||||
|
|
|
@ -15,7 +15,8 @@ cmd :: Command
|
||||||
cmd = withAnnexOptions [jsonOptions] $
|
cmd = withAnnexOptions [jsonOptions] $
|
||||||
command "semitrust" SectionSetup
|
command "semitrust" SectionSetup
|
||||||
"return repository to default trust level"
|
"return repository to default trust level"
|
||||||
(paramRepeating paramRepository) (withParams seek)
|
(paramRepeating paramRepository)
|
||||||
|
(withParams' seek completeRemotes)
|
||||||
|
|
||||||
seek :: CmdParams -> CommandSeek
|
seek :: CmdParams -> CommandSeek
|
||||||
seek = trustCommand "semitrust" SemiTrusted
|
seek = trustCommand "semitrust" SemiTrusted
|
||||||
|
|
|
@ -19,7 +19,8 @@ import qualified Data.Set as S
|
||||||
cmd :: Command
|
cmd :: Command
|
||||||
cmd = withAnnexOptions [jsonOptions] $
|
cmd = withAnnexOptions [jsonOptions] $
|
||||||
command "trust" SectionSetup "trust a repository"
|
command "trust" SectionSetup "trust a repository"
|
||||||
(paramRepeating paramRepository) (withParams seek)
|
(paramRepeating paramRepository)
|
||||||
|
(withParams' seek completeRemotes)
|
||||||
|
|
||||||
seek :: CmdParams -> CommandSeek
|
seek :: CmdParams -> CommandSeek
|
||||||
seek = trustCommand "trust" Trusted
|
seek = trustCommand "trust" Trusted
|
||||||
|
|
|
@ -16,7 +16,8 @@ import qualified Data.Set as S
|
||||||
|
|
||||||
cmd :: Command
|
cmd :: Command
|
||||||
cmd = command "ungroup" SectionSetup "remove a repository from a group"
|
cmd = command "ungroup" SectionSetup "remove a repository from a group"
|
||||||
(paramPair paramRemote paramDesc) (withParams seek)
|
(paramPair paramRemote paramDesc)
|
||||||
|
(withParams' seek completeRemotes)
|
||||||
|
|
||||||
seek :: CmdParams -> CommandSeek
|
seek :: CmdParams -> CommandSeek
|
||||||
seek = withWords (commandAction . start)
|
seek = withWords (commandAction . start)
|
||||||
|
|
|
@ -14,7 +14,8 @@ import Command.Trust (trustCommand)
|
||||||
cmd :: Command
|
cmd :: Command
|
||||||
cmd = withAnnexOptions [jsonOptions] $
|
cmd = withAnnexOptions [jsonOptions] $
|
||||||
command "untrust" SectionSetup "do not trust a repository"
|
command "untrust" SectionSetup "do not trust a repository"
|
||||||
(paramRepeating paramRepository) (withParams seek)
|
(paramRepeating paramRepository)
|
||||||
|
(withParams' seek completeRemotes)
|
||||||
|
|
||||||
seek :: CmdParams -> CommandSeek
|
seek :: CmdParams -> CommandSeek
|
||||||
seek = trustCommand "untrust" UnTrusted
|
seek = trustCommand "untrust" UnTrusted
|
||||||
|
|
|
@ -56,6 +56,7 @@ optParser :: CmdParamsDesc -> Parser UnusedOptions
|
||||||
optParser _ = UnusedOptions
|
optParser _ = UnusedOptions
|
||||||
<$> optional (strOption
|
<$> optional (strOption
|
||||||
( long "from" <> short 'f' <> metavar paramRemote
|
( long "from" <> short 'f' <> metavar paramRemote
|
||||||
|
<> completeRemotes
|
||||||
<> help "remote to check for unused content"
|
<> help "remote to check for unused content"
|
||||||
))
|
))
|
||||||
<*> optional (option (eitherReader parseRefSpec)
|
<*> optional (option (eitherReader parseRefSpec)
|
||||||
|
|
|
@ -27,7 +27,8 @@ cmd'
|
||||||
-> (UUID -> PreferredContentExpression -> Annex ())
|
-> (UUID -> PreferredContentExpression -> Annex ())
|
||||||
-> Command
|
-> Command
|
||||||
cmd' name desc getter setter = noMessages $
|
cmd' name desc getter setter = noMessages $
|
||||||
command name SectionSetup desc pdesc (withParams seek)
|
command name SectionSetup desc pdesc
|
||||||
|
(withParams' seek completeRemotes)
|
||||||
where
|
where
|
||||||
pdesc = paramPair paramRemote (paramOptional paramExpression)
|
pdesc = paramPair paramRemote (paramOptional paramExpression)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue