X-Git-Url: https://git.distorted.org.uk/~mdw/hippotat/blobdiff_plain/0256fc104ccd33103127dffb48b449aca8d46fae..f022d67fe5078b10620651b5a0eddbd91d9b018b:/hippotatlib/__init__.py diff --git a/hippotatlib/__init__.py b/hippotatlib/__init__.py index 0125ece..e8a502f 100644 --- a/hippotatlib/__init__.py +++ b/hippotatlib/__init__.py @@ -5,22 +5,22 @@ # # Copyright 2017 Ian Jackson # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version, with the "CAF Login -# Exception" as published by Ian Jackson (version 2, or at your option -# any later version) as an Additional Permission. +# GPLv3+ # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# You should have received a copy of the GNU Affero General Public -# License and the CAF Login Exception along with this program, in the -# file AGPLv3+CAFv2. If not, email Ian Jackson -# . +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program, in the file GPLv3. If not, +# see . + import signal signal.signal(signal.SIGINT, signal.SIG_DFL) @@ -562,12 +562,18 @@ def common_startup(process_cfg): need_defcfg = False readconfig(value) + def read_defconfig(): + readconfig('/etc/hippotat/config.d', False) + readconfig('/etc/hippotat/passwords.d', False) + readconfig('/etc/hippotat/master.cfg', False) + def dfs_less_detailed(dl): return [df for df in DBG.iterconstants() if df <= dl] def ds_default(od,os,dl,op): global debug_set - debug_set = set(dfs_less_detailed(debug_def_detail)) + debug_set.clear + debug_set |= set(dfs_less_detailed(debug_def_detail)) def ds_select(od,os, spec, op): for it in spec.split(','): @@ -628,18 +634,18 @@ just `+': all DFLAGs. if len(args): optparser.error('no non-option arguments please') if need_defcfg: - readconfig('/etc/hippotat/config', False) - readconfig('/etc/hippotat/config.d', False) + read_defconfig() try: (pss, pcs) = _cfg_process_putatives() - process_cfg(pss, pcs) + process_cfg(opts, pss, pcs) except (configparser.Error, ValueError): traceback.print_exc(file=sys.stderr) print('\nInvalid configuration, giving up.', file=sys.stderr) sys.exit(12) - #print(repr(debug_set), file=sys.stderr) + + #print('X', debug_set, file=sys.stderr) log_formatter = twisted.logger.formatEventAsClassicLogText stdout_obs = twisted.logger.FileLogObserver(sys.stdout, log_formatter) @@ -648,15 +654,16 @@ just `+': all DFLAGs. stdsomething_obs = twisted.logger.FilteringLogObserver( stderr_obs, [pred], stdout_obs ) - log_observer = twisted.logger.FilteringLogObserver( + global file_log_observer + file_log_observer = twisted.logger.FilteringLogObserver( stdsomething_obs, [LogNotBoringTwisted()] ) #log_observer = stdsomething_obs twisted.logger.globalLogBeginner.beginLoggingTo( - [ log_observer, crash_on_critical ] + [ file_log_observer, crash_on_critical ] ) def common_run(): log_debug(DBG.INIT, 'entering reactor') if not _crashing: reactor.run() - print('CRASHED (end)', file=sys.stderr) + print('ENDED', file=sys.stderr)