chiark / gitweb /
fishdescriptor: sort out debugging output
[chiark-utils.git] / fishdescriptor / fishdescriptor
index 703717c..20eddfe 100755 (executable)
@@ -6,6 +6,7 @@ import optparse
 import re
 import subprocess
 import socket
+import os
 
 donor = None
 
@@ -82,7 +83,7 @@ def implement_sockinfo(nominal):
     sock.close()
 
 def permute_fds_for_exec():
-    actual2intended = { info[0]: nominal for nominal, info in fdmap.items }
+    actual2intended = { info[0]: nominal for nominal, info in fdmap.items() }
     # invariant at the start of each loop iteration:
     #     for each intended (aka `nominal') we have processed:
     #         relevant open-file is only held in fd intended
@@ -110,13 +111,13 @@ def permute_fds_for_exec():
 def implement_exec(argl):
     if donor is not None: donor.detach()
     sys.stdout.flush()
-    permut_fds_for_exec()
+    permute_fds_for_exec()
     os.execvp(argl[0], argl)
 
 def set_donor(pid):
     global donor
     if donor is not None: donor.detach()
-    donor = fishdescriptor.fish.Donor(pid)
+    donor = fishdescriptor.fish.Donor(pid, debug=ov.debug)
 
 def ocb_set_donor(option, opt, value, parser):
     set_donor(value)
@@ -138,6 +139,9 @@ def process_args():
     op.disable_interspersed_args()
     op.add_option('-p','--pid', type='int', action='callback',
                   callback=ocb_set_donor)
+    op.add_option('-D','--debug', action='store_const',
+                  dest='debug', const=sys.stderr)
+    ov.debug = None
 
     args = sys.argv[1:]
     last_nominal = None # None or (nominal,) ie None or (None,) or (int,)
@@ -147,10 +151,8 @@ def process_args():
         if not len(args): break
 
         arg = args.pop(0)
-        print("ARG %s" % arg, file=sys.stderr)
 
         if donor is None:
-            print("SET_DONOR", file=sys.stderr)
             set_donor(int(arg))
         elif arg_matches(r'^(?:(\d+)=)?(\d+)?$'):
             (nominal, there) = m.groups()