]> scripts.mit.edu Git - wizard.git/blobdiff - wizard/shell.py
Fix numerous bugs from our test runs.
[wizard.git] / wizard / shell.py
index d40fa3dff02b3cd9cdbe28684f851cba04f9aaee..8748b93180865a5e910c1b3dccd55317a5761cb1 100644 (file)
@@ -39,7 +39,7 @@ def drop_priviledges(options):
         return
     args = []
     for k,v in os.environ.items():
-        if k.startswith('WIZARD_'):
+        if k.startswith('WIZARD_') or k == "SSH_GSSAPI_NAME":
             args.append("%s=%s" % (k,v))
     args += sys.argv
     logging.debug("Dropping priviledges")
@@ -80,8 +80,13 @@ class Shell(object):
         >>> sh.call("cat", input='Foobar')
         ('Foobar', '')
         """
+        kwargs.setdefault("interactive", False)
+        kwargs.setdefault("strip", False)
         kwargs.setdefault("python", None)
-        logging.info("Running `" + ' '.join(args) + "`")
+        if kwargs["strip"]:
+            logging.debug("Evaluating `" + ' '.join(args) + "`")
+        else:
+            logging.info("Running `" + ' '.join(args) + "`")
         if self.dry:
             return
         if kwargs["python"] is None and is_python(args):
@@ -90,8 +95,6 @@ class Shell(object):
             args = list(args)
             args[0] = wizard_bin
         kwargs.setdefault("input", None)
-        kwargs.setdefault("interactive", False)
-        kwargs.setdefault("strip", False)
         if kwargs["interactive"]:
             stdout=sys.stdout
             stdin=sys.stdin
@@ -115,7 +118,10 @@ class Shell(object):
             return proc
         stdout, stderr = proc.communicate(kwargs["input"])
         if not kwargs["interactive"]:
-            self._log(stdout, stderr)
+            if kwargs["strip"]:
+                self._log(None, stderr)
+            else:
+                self._log(stdout, stderr)
         if proc.returncode:
             if kwargs["python"]: eclass = PythonCallError
             else: eclass = CallError