X-Git-Url: https://git.distorted.org.uk/~mdw/hippotat/blobdiff_plain/7852bfc8a1ba1cb194c78c3ee2826886bc1cc0f3..80e963a152d44e4a795d654e8e01a11f64909ed4:/hippotatlib/__init__.py diff --git a/hippotatlib/__init__.py b/hippotatlib/__init__.py index e8a502f..ab404fa 100644 --- a/hippotatlib/__init__.py +++ b/hippotatlib/__init__.py @@ -100,22 +100,27 @@ def log_debug(dflag, msg, idof=None, d=None): msg += ' ' + d + trunc log.info('{dflag} {msgcore}', dflag=dflag, msgcore=msg) +def logevent_is_boringtwisted(event): + try: + if event.get('log_level') != LogLevel.info: + return False + dflag = event.get('dflag') + if dflag is False : return False + if dflag in debug_set: return False + if dflag is None and DBG.TWISTED in debug_set: return False + return True + except Exception: + print(traceback.format_exc(), file=org_stderr) + return False + @implementer(twisted.logger.ILogFilterPredicate) class LogNotBoringTwisted: def __call__(self, event): - yes = twisted.logger.PredicateResult.yes - no = twisted.logger.PredicateResult.no - try: - if event.get('log_level') != LogLevel.info: - return yes - dflag = event.get('dflag') - if dflag is False : return yes - if dflag in debug_set: return yes - if dflag is None and DBG.TWISTED in debug_set: return yes - return no - except Exception: - print(traceback.format_exc(), file=org_stderr) - return yes + return ( + twisted.logger.PredicateResult.no + if logevent_is_boringtwisted(event) else + twisted.logger.PredicateResult.yes + ) #---------- default config ---------- @@ -546,7 +551,7 @@ def common_startup(process_cfg): # is a directory log('directory') re = regexp.compile('[^-A-Za-z0-9_]') - for f in os.listdir(cdir): + for f in os.listdir(pathname): if re.search(f): continue subpath = pathname + '/' + f try: @@ -562,11 +567,19 @@ def common_startup(process_cfg): need_defcfg = False readconfig(value) + def oc_extra_config(od,os, value, op): + readconfig(value) + def read_defconfig(): readconfig('/etc/hippotat/config.d', False) readconfig('/etc/hippotat/passwords.d', False) readconfig('/etc/hippotat/master.cfg', False) + def oc_defconfig(od,os, value, op): + nonlocal need_defcfg + need_defcfg = False + read_defconfig(value) + def dfs_less_detailed(dl): return [df for df in DBG.iterconstants() if df <= dl] @@ -630,6 +643,18 @@ just `+': all DFLAGs. action='callback', callback= oc_config) + optparser.add_option('--extra-config', + nargs=1, + type='string', + metavar='CONFIGFILE', + dest='configfile', + action='callback', + callback= oc_extra_config) + + optparser.add_option('--default-config', + action='callback', + callback= oc_defconfig) + (opts, args) = optparser.parse_args() if len(args): optparser.error('no non-option arguments please')