initial implementation of --explain
Currently it only displays explanations of options like --in and --copies. In the future, it should explain preferred content expression evaluation and other decisions. The explanations of a few things could be better. In particular, "standard" will just appear as-is (or as "!standard" if it doesn't match), rather than explaining why the standard preferred content expression for the group matches or not. Currently as implemented, it goes to stdout, and so commands like git-annex find that have custom output will not display --explain information. Perhaps that should change, dunno. Sponsored-by: Dartmouth College's DANDI project
This commit is contained in:
parent
cf40e2d4b6
commit
f25eeedeac
12 changed files with 122 additions and 46 deletions
|
@ -15,27 +15,27 @@ import Logs.PreferredContent
|
|||
import qualified Remote
|
||||
|
||||
addWantGet :: Annex ()
|
||||
addWantGet = addPreferredContentLimit $
|
||||
addWantGet = addPreferredContentLimit "want-get" $
|
||||
checkWant $ wantGet False Nothing
|
||||
|
||||
addWantGetBy :: String -> Annex ()
|
||||
addWantGetBy name = do
|
||||
u <- Remote.nameToUUID name
|
||||
addPreferredContentLimit $ checkWant $ \af ->
|
||||
addPreferredContentLimit "want-get-by" $ checkWant $ \af ->
|
||||
wantGetBy False Nothing af u
|
||||
|
||||
addWantDrop :: Annex ()
|
||||
addWantDrop = addPreferredContentLimit $ checkWant $ \af ->
|
||||
addWantDrop = addPreferredContentLimit "want-drop" $ checkWant $ \af ->
|
||||
wantDrop False Nothing Nothing af (Just [])
|
||||
|
||||
addWantDropBy :: String -> Annex ()
|
||||
addWantDropBy name = do
|
||||
u <- Remote.nameToUUID name
|
||||
addPreferredContentLimit $ checkWant $ \af ->
|
||||
addPreferredContentLimit "want-drop-by" $ checkWant $ \af ->
|
||||
wantDrop False (Just u) Nothing af (Just [])
|
||||
|
||||
addPreferredContentLimit :: (MatchInfo -> Annex Bool) -> Annex ()
|
||||
addPreferredContentLimit a = do
|
||||
addPreferredContentLimit :: String -> (MatchInfo -> Annex Bool) -> Annex ()
|
||||
addPreferredContentLimit desc a = do
|
||||
nfn <- introspectPreferredRequiredContent matchNeedsFileName Nothing
|
||||
nfc <- introspectPreferredRequiredContent matchNeedsFileContent Nothing
|
||||
nk <- introspectPreferredRequiredContent matchNeedsKey Nothing
|
||||
|
@ -46,6 +46,7 @@ addPreferredContentLimit a = do
|
|||
, matchNeedsFileContent = nfc
|
||||
, matchNeedsKey = nk
|
||||
, matchNeedsLocationLog = nl
|
||||
, matchDesc = matchDescSimple desc
|
||||
}
|
||||
|
||||
checkWant :: (AssociatedFile -> Annex Bool) -> MatchInfo -> Annex Bool
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue