netcmd: Add errf stream to command instances.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 12 Oct 2011 21:19:12 +0000 (23:19 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 12 Oct 2011 22:23:39 +0000 (00:23 +0200)
source4/scripting/bin/samba-tool
source4/scripting/python/samba/netcmd/__init__.py

index f05fa3c02344939a290f4dd64bb4e5b942780765..9f06e8daae8ae9aa5eb7b282c073e9ab99a1500a 100755 (executable)
@@ -45,7 +45,7 @@ from samba.netcmd.vampire import cmd_vampire
 
 class cmd_sambatool(SuperCommand):
     """samba-tool SuperCommand"""
-    
+
     subcommands = {}
     subcommands["dbcheck"] =  cmd_dbcheck()
     subcommands["delegation"] = cmd_delegation()
@@ -81,4 +81,5 @@ if __name__ == '__main__':
         retval = -1
     except Exception, e:
         cmd.show_command_error(e)
+        retval = 1
     sys.exit(retval)
index 58d566071f564ff6dc50c085627dd91ffddae9b4..3acd1022bfdf2bf6bdd1f9ce8741a5e8be280997 100644 (file)
@@ -50,6 +50,7 @@ class Command(object):
         "versionopts": options.VersionOptions,
         }
     outf = sys.stdout
+    errf = sys.stderr
 
     def usage(self, *args):
         parser, _ = self._create_parser()
@@ -70,24 +71,23 @@ class Command(object):
 
         if isinstance(inner_exception, LdbError):
             (ldb_ecode, ldb_emsg) = inner_exception
-            print >>sys.stderr, "ERROR(ldb): %s - %s" % (message, ldb_emsg)
+            self.errf.write("ERROR(ldb): %s - %s\n" % (message, ldb_emsg))
         elif isinstance(inner_exception, AssertionError):
-            print >>sys.stderr, "ERROR(assert): %s" % message
+            self.errf.write("ERROR(assert): %s\n" % message)
             force_traceback = True
         elif isinstance(inner_exception, RuntimeError):
-            print >>sys.stderr, "ERROR(runtime): %s - %s" % (message, evalue)
+            self.errf.write("ERROR(runtime): %s - %s\n" % (message, evalue))
         elif type(inner_exception) is Exception:
-            print >>sys.stderr, "ERROR(exception): %s - %s" % (message, evalue)
+            self.errf.write("ERROR(exception): %s - %s\n" % (message, evalue))
             force_traceback = True
         elif inner_exception is None:
-            print >>sys.stderr, "ERROR: %s" % (message)
+            self.errf.write("ERROR: %s\n" % (message))
         else:
-            print >>sys.stderr, "ERROR(%s): %s - %s" % (str(etype), message, evalue)
+            self.errf.write("ERROR(%s): %s - %s\n" % (str(etype), message, evalue))
             force_traceback = True
 
         if force_traceback or samba.get_debug_level() >= 3:
             traceback.print_tb(etraceback)
-        sys.exit(1)
 
     def _create_parser(self):
         parser = optparse.OptionParser(usage=self.synopsis,