from bup import options
from bup.helpers import *
+# Give the subcommand exclusive access to stdin.
+orig_stdin = os.dup(0)
+devnull = os.open('/dev/null', os.O_RDONLY)
+os.dup2(devnull, 0)
+os.close(devnull)
+
optspec = """
-bup mux command [command arguments...]
+bup mux command [arguments...]
--
"""
o = options.Options(optspec)
if len(extra) < 1:
o.fatal('command is required')
-cmdpath, cmdfn = os.path.split(__file__)
subcmd = extra
-subcmd[0] = os.path.join(cmdpath, 'bup-' + subcmd[0])
debug2('bup mux: starting %r\n' % (extra,))
def close_fds():
os.close(outr)
os.close(errr)
-p = subprocess.Popen(subcmd, stdout=outw, stderr=errw, preexec_fn=close_fds)
+
+p = subprocess.Popen(subcmd, stdin=orig_stdin, stdout=outw, stderr=errw,
+ preexec_fn=close_fds)
os.close(outw)
os.close(errw)
sys.stdout.write('BUPMUX')