X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=blobdiff_plain;f=fishdescriptor%2Ffishdescriptor;h=20eddfef05936e38aa17a0bc29bcd8f8ebe2d58c;hp=703717c45b46ceee1406f83d9077cf88a8508edc;hb=7284668b47fd883a654edd710a5700cd60f1f3de;hpb=d9d7fd93917174bea24c41dcbf327a4f26722e3d diff --git a/fishdescriptor/fishdescriptor b/fishdescriptor/fishdescriptor index 703717c..20eddfe 100755 --- a/fishdescriptor/fishdescriptor +++ b/fishdescriptor/fishdescriptor @@ -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()