chiark / gitweb /
Revert "config: Check args after reading config"
[hippotat.git] / hippotatlib / __init__.py
index feb7894430fe4b61898fca1c429ebbc0e9a04f5e..e8a502f8a35b88b9ea616e7dce6c0089a5e55401 100644 (file)
@@ -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)