{- git-annex debugging
-
- - Copyright 2021 Joey Hess <id@joeyh.name>
+ - Copyright 2021-2023 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
DebugSource(..),
debug,
fastDebug,
+ fastDebug',
configureDebug,
debugSelectorFromGitConfig,
parseDebugSelector,
fastDebug :: DebugSource -> String -> Annex.Annex ()
fastDebug src msg = do
rd <- Annex.getRead id
- when (Annex.debugenabled rd) $
- liftIO $ Utility.Debug.fastDebug (Annex.debugselector rd) src msg
+ fastDebug' rd src msg
+
+fastDebug' :: Annex.AnnexRead -> DebugSource -> String -> Annex.Annex ()
+fastDebug' rd src msg = when (Annex.debugenabled rd) $
+ liftIO $ Utility.Debug.fastDebug (Annex.debugselector rd) src msg
explain :: ActionItem -> Maybe StringContainingQuotedPath -> Annex ()
explain ai (Just msg) = do
rd <- Annex.getRead id
- when (Annex.explainenabled rd) $
- let d = actionItemDesc ai
- in outputMessage JSON.none id $
- "[ " <> (if d == mempty then "" else (d <> " ")) <> msg <> " ]\n"
+ let d = actionItemDesc ai
+ let msg' = "[ " <> (if d == mempty then "" else (d <> " ")) <> msg <> " ]\n"
+ if Annex.explainenabled rd
+ then outputMessage JSON.none id msg'
+ else fastDebug' rd "Messages.explain" (decodeBS (noquote msg'))
explain _ _ = return ()
{- Prevents any concurrent console access while running an action, so