info: error out when file matching options used on non-directory

When file matching options are specified when getting info of
something other than a directory, they won't have any effect, so error out
to avoid confusion.

This commit was sponsored by mo on Patreon.
This commit is contained in:
Joey Hess 2019-08-24 13:20:19 -04:00
parent 8012d61874
commit c650389118
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 14 additions and 0 deletions

View file

@ -1,3 +1,11 @@
git-annex (7.20190820) UNRELEASED; urgency=medium
* info: When file matching options are specified when getting
info of something other than a directory, they won't have any effect,
so error out to avoid confusion.
-- Joey Hess <id@joeyh.name> Sat, 24 Aug 2019 12:54:35 -0400
git-annex (7.20190819) upstream; urgency=medium
* New git-lfs special remote, which can be used to store data on any git-lfs

View file

@ -132,6 +132,7 @@ start o ps = do
globalInfo :: InfoOptions -> Annex ()
globalInfo o = do
disallowMatchingOptions
u <- getUUID
whenM ((==) DeadTrusted <$> lookupTrust u) $
earlyWarning "Warning: This repository is currently marked as dead."
@ -144,6 +145,7 @@ itemInfo :: InfoOptions -> String -> Annex ()
itemInfo o p = ifM (isdir p)
( dirInfo o p
, do
disallowMatchingOptions
v <- Remote.byName' p
case v of
Right r -> remoteInfo o r
@ -164,6 +166,10 @@ noInfo s = do
showNote $ "not a directory or an annexed file or a treeish or a remote or a uuid"
showEndFail
disallowMatchingOptions :: Annex ()
disallowMatchingOptions = whenM Limit.limited $
giveup "File matching options can only be used when getting info on a directory."
dirInfo :: InfoOptions -> FilePath -> Annex ()
dirInfo o dir = showCustom (unwords ["info", dir]) $ do
stats <- selStats