added --debugfilter (and annex.debugfilter)
This commit is contained in:
parent
aaba83795b
commit
1b645e1ace
9 changed files with 65 additions and 14 deletions
|
@ -100,8 +100,8 @@ storePrefs p = do
|
||||||
then addAutoStartFile here
|
then addAutoStartFile here
|
||||||
else removeAutoStartFile here
|
else removeAutoStartFile here
|
||||||
setConfig (annexConfig "debug") (boolConfig $ enableDebug p)
|
setConfig (annexConfig "debug") (boolConfig $ enableDebug p)
|
||||||
liftIO $ if enableDebug p
|
if enableDebug p
|
||||||
then enableDebugOutput
|
then enableDebugOutput
|
||||||
else disableDebugOutput
|
else disableDebugOutput
|
||||||
|
|
||||||
getPreferencesR :: Handler Html
|
getPreferencesR :: Handler Html
|
||||||
|
|
|
@ -3,6 +3,7 @@ git-annex (8.20210331) UNRELEASED; urgency=medium
|
||||||
* Fix build with persistent-2.12.0.1
|
* Fix build with persistent-2.12.0.1
|
||||||
* Avoid excess commits to the git-annex branch when stall detection is
|
* Avoid excess commits to the git-annex branch when stall detection is
|
||||||
enabled.
|
enabled.
|
||||||
|
* Added --debugfilter (and annex.debugfilter)
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Thu, 01 Apr 2021 12:17:26 -0400
|
-- Joey Hess <id@joeyh.name> Thu, 01 Apr 2021 12:17:26 -0400
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ prepRunCommand cmd globalconfig = do
|
||||||
Annex.setOutput QuietOutput
|
Annex.setOutput QuietOutput
|
||||||
getParsed globalconfig
|
getParsed globalconfig
|
||||||
whenM (annexDebug <$> Annex.getGitConfig) $
|
whenM (annexDebug <$> Annex.getGitConfig) $
|
||||||
liftIO enableDebugOutput
|
enableDebugOutput
|
||||||
|
|
||||||
findAddonCommand :: Maybe String -> IO (Maybe Command)
|
findAddonCommand :: Maybe String -> IO (Maybe Command)
|
||||||
findAddonCommand Nothing = return Nothing
|
findAddonCommand Nothing = return Nothing
|
||||||
|
|
|
@ -54,6 +54,11 @@ commonGlobalOptions =
|
||||||
<> help "don't show debug messages"
|
<> help "don't show debug messages"
|
||||||
<> hidden
|
<> hidden
|
||||||
)
|
)
|
||||||
|
, globalSetter setdebugfilter $ strOption
|
||||||
|
( long "debugfilter" <> metavar "NAME[,NAME..]"
|
||||||
|
<> help "show debug messages coming from a module"
|
||||||
|
<> hidden
|
||||||
|
)
|
||||||
, globalSetter setforcebackend $ strOption
|
, globalSetter setforcebackend $ strOption
|
||||||
( long "backend" <> short 'b' <> metavar paramName
|
( long "backend" <> short 'b' <> metavar paramName
|
||||||
<> help "specify key-value backend to use"
|
<> help "specify key-value backend to use"
|
||||||
|
@ -66,6 +71,9 @@ commonGlobalOptions =
|
||||||
setforcebackend v = Annex.changeState $ \s -> s { Annex.forcebackend = Just v }
|
setforcebackend v = Annex.changeState $ \s -> s { Annex.forcebackend = Just v }
|
||||||
-- Overriding this way, rather than just setting annexDebug
|
-- Overriding this way, rather than just setting annexDebug
|
||||||
-- makes the config be passed on to any git-annex child processes.
|
-- makes the config be passed on to any git-annex child processes.
|
||||||
setdebug b = Annex.addGitConfigOverride $ decodeBS' $
|
setdebug v = Annex.addGitConfigOverride $
|
||||||
debugconfig <> "=" <> boolConfig' b
|
decodeBS' $ debugconfig <> "=" <> boolConfig' v
|
||||||
|
setdebugfilter v = Annex.addGitConfigOverride $
|
||||||
|
decodeBS' (debugfilterconfig <> "=") ++ v
|
||||||
(ConfigKey debugconfig) = annexConfig "debug"
|
(ConfigKey debugconfig) = annexConfig "debug"
|
||||||
|
(ConfigKey debugfilterconfig) = annexConfig "debugfilter"
|
||||||
|
|
|
@ -102,7 +102,7 @@ getFeed addunlockedmatcher opts cache url = do
|
||||||
, "end of feed content"
|
, "end of feed content"
|
||||||
]
|
]
|
||||||
showEndResult =<< feedProblem url
|
showEndResult =<< feedProblem url
|
||||||
(msg ++ " (use --debug to see the feed content that was downloaded)")
|
(msg ++ " (use --debug --debugfilter=ImportFeed to see the feed content that was downloaded)")
|
||||||
|
|
||||||
data ToDownload = ToDownload
|
data ToDownload = ToDownload
|
||||||
{ feed :: Feed
|
{ feed :: Feed
|
||||||
|
|
14
Messages.hs
14
Messages.hs
|
@ -258,13 +258,17 @@ setupConsole = do
|
||||||
hSetBuffering stdout LineBuffering
|
hSetBuffering stdout LineBuffering
|
||||||
hSetBuffering stderr LineBuffering
|
hSetBuffering stderr LineBuffering
|
||||||
|
|
||||||
enableDebugOutput :: IO ()
|
enableDebugOutput :: Annex ()
|
||||||
enableDebugOutput = do
|
enableDebugOutput = do
|
||||||
dd <- debugDisplayer
|
names <- map encodeBS . annexDebugFilter <$> Annex.getGitConfig
|
||||||
configureDebug dd (DebugSelector (\_ -> True))
|
let selector
|
||||||
|
| null names = const True
|
||||||
|
| otherwise = \(DebugSource s) -> any (`S.isInfixOf` s) names
|
||||||
|
dd <- liftIO debugDisplayer
|
||||||
|
liftIO $ configureDebug dd (DebugSelector selector)
|
||||||
|
|
||||||
disableDebugOutput :: IO ()
|
disableDebugOutput :: Annex ()
|
||||||
disableDebugOutput = do
|
disableDebugOutput = liftIO $ do
|
||||||
dd <- debugDisplayer
|
dd <- debugDisplayer
|
||||||
configureDebug dd (DebugSelector (\_ -> False))
|
configureDebug dd (DebugSelector (\_ -> False))
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{- git-annex configuration
|
{- git-annex configuration
|
||||||
-
|
-
|
||||||
- Copyright 2012-2020 Joey Hess <id@joeyh.name>
|
- Copyright 2012-2021 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU AGPL version 3 or higher.
|
- Licensed under the GNU AGPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
@ -90,6 +90,7 @@ data GitConfig = GitConfig
|
||||||
, annexSyncContent :: GlobalConfigurable Bool
|
, annexSyncContent :: GlobalConfigurable Bool
|
||||||
, annexSyncOnlyAnnex :: GlobalConfigurable Bool
|
, annexSyncOnlyAnnex :: GlobalConfigurable Bool
|
||||||
, annexDebug :: Bool
|
, annexDebug :: Bool
|
||||||
|
, annexDebugFilter :: [String]
|
||||||
, annexWebOptions :: [String]
|
, annexWebOptions :: [String]
|
||||||
, annexYoutubeDlOptions :: [String]
|
, annexYoutubeDlOptions :: [String]
|
||||||
, annexAriaTorrentOptions :: [String]
|
, annexAriaTorrentOptions :: [String]
|
||||||
|
@ -170,6 +171,8 @@ extractGitConfig configsource r = GitConfig
|
||||||
, annexSyncOnlyAnnex = configurable False $
|
, annexSyncOnlyAnnex = configurable False $
|
||||||
getmaybebool (annexConfig "synconlyannex")
|
getmaybebool (annexConfig "synconlyannex")
|
||||||
, annexDebug = getbool (annexConfig "debug") False
|
, annexDebug = getbool (annexConfig "debug") False
|
||||||
|
, annexDebugFilter = maybe [] (splitc ',') $
|
||||||
|
getmaybe (annexConfig "debugfilter")
|
||||||
, annexWebOptions = getwords (annexConfig "web-options")
|
, annexWebOptions = getwords (annexConfig "web-options")
|
||||||
, annexYoutubeDlOptions = getwords (annexConfig "youtube-dl-options")
|
, annexYoutubeDlOptions = getwords (annexConfig "youtube-dl-options")
|
||||||
, annexAriaTorrentOptions = getwords (annexConfig "aria-torrent-options")
|
, annexAriaTorrentOptions = getwords (annexConfig "aria-torrent-options")
|
||||||
|
|
|
@ -780,11 +780,27 @@ may not be explicitly listed on their individual man pages.
|
||||||
|
|
||||||
* `--debug`
|
* `--debug`
|
||||||
|
|
||||||
Show debug messages.
|
Display debug messages.
|
||||||
|
|
||||||
* `--no-debug`
|
* `--no-debug`
|
||||||
|
|
||||||
Disable debug messages.
|
Disable display of debug messages.
|
||||||
|
|
||||||
|
* `--debugfilter=name[,name..]`
|
||||||
|
|
||||||
|
When debug message display has been enabled by `--debug`, this filters
|
||||||
|
the debug messages that are displayed to ones coming from modules with
|
||||||
|
the specified names.
|
||||||
|
|
||||||
|
To find the names of modules, see the full debug output, which includes
|
||||||
|
the module name, eg "(Utility.Process)"
|
||||||
|
|
||||||
|
The full module name does not need to be
|
||||||
|
specified when using this, a substring of the name will do.
|
||||||
|
|
||||||
|
For example, `--debugfilter=Process,External` will display debugging
|
||||||
|
output when git-annex runs processes, and when it communicates with
|
||||||
|
external special remotes.
|
||||||
|
|
||||||
* `--numcopies=n`
|
* `--numcopies=n`
|
||||||
|
|
||||||
|
@ -1214,6 +1230,12 @@ repository, using [[git-annex-config]]. See its man page for a list.)
|
||||||
|
|
||||||
Set to true to enable debug logging by default.
|
Set to true to enable debug logging by default.
|
||||||
|
|
||||||
|
* `annex.debugfilter`
|
||||||
|
|
||||||
|
Set to configure which debug messages to display (when debug message
|
||||||
|
display has been enabled by annex.debug or --debug). The value is one
|
||||||
|
or more module names, separated by commas.
|
||||||
|
|
||||||
* `annex.version`
|
* `annex.version`
|
||||||
|
|
||||||
The current version of the git-annex repository. This is
|
The current version of the git-annex repository. This is
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 6"""
|
||||||
|
date="2021-04-05T19:28:36Z"
|
||||||
|
content="""
|
||||||
|
I've implemented --debugfilter which can select the debug output you want
|
||||||
|
to see.
|
||||||
|
|
||||||
|
Also started splitting out the immutable parts of AnnexState, but that does
|
||||||
|
not yet include debug options, due to the way option parsing currently
|
||||||
|
works. Once that gets done, there's a new fastDebug that can be used inside
|
||||||
|
tight loop code paths.
|
||||||
|
"""]]
|
Loading…
Reference in a new issue