diff options
-rwxr-xr-x | ipa | 3 | ||||
-rw-r--r-- | ipalib/cli.py | 8 |
2 files changed, 8 insertions, 3 deletions
@@ -25,9 +25,10 @@ Command Line Interface for IPA Administration. The CLI functionality is implemented in ipalib/cli.py """ +import sys from ipalib import api from ipalib.cli import CLI import ipalib.load_plugins cli = CLI(api) -cli.run() +sys.exit(cli.run()) diff --git a/ipalib/cli.py b/ipalib/cli.py index ab7e36204..4e5e433ed 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -270,7 +270,7 @@ class CLI(object): self.print_commands() print 'ipa: ERROR: unknown command %r' % key sys.exit(2) - self.run_cmd( + return self.run_cmd( self[key], list(s.decode('utf-8') for s in args[1:]) ) @@ -280,7 +280,11 @@ class CLI(object): try: self.run_interactive(cmd, kw) except KeyboardInterrupt: - return + return 0 + except errors.RuleError, e: + print e + return 2 + return 0 def run_interactive(self, cmd, kw): for param in cmd.params(): |