X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/c333afcf5feb13f23746410a14aa9d42efc9ff01..0d4cd7ce095244423ef506e05d26980ce2749463:/stgit/main.py diff --git a/stgit/main.py b/stgit/main.py index d0e7230..800513b 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -22,10 +22,6 @@ import sys, os from optparse import OptionParser import stgit.commands -from stgit.stack import Series, StackException -from stgit.git import GitException -from stgit.commands.common import CmdException -from stgit.gitmergeonefile import GitMergeException # # The commands map @@ -194,7 +190,8 @@ def main(): command = commands[cmd] parser = OptionParser(usage = command.usage, option_list = command.options) - parser.print_help() + from pydoc import pager + pager(parser.format_help()) else: print_help() sys.exit(0) @@ -221,7 +218,19 @@ def main(): usage = command.usage.split('\n')[0].strip() parser = OptionParser(usage = usage, option_list = command.options) options, args = parser.parse_args() + + # These modules are only used from this point onwards and do not + # need to be imported earlier + from stgit.config import config_setup + from ConfigParser import ParsingError, NoSectionError + from stgit.stack import Series, StackException + from stgit.git import GitException + from stgit.commands.common import CmdException + from stgit.gitmergeonefile import GitMergeException + try: + config_setup() + # 'clone' doesn't expect an already initialised GIT tree. A Series # object will be created after the GIT tree is cloned if cmd != 'clone': @@ -232,8 +241,8 @@ def main(): stgit.commands.common.crt_series = command.crt_series command.func(parser, options, args) - except (IOError, CmdException, StackException, GitException, - GitMergeException), err: + except (IOError, ParsingError, NoSectionError, CmdException, + StackException, GitException, GitMergeException), err: print >> sys.stderr, '%s %s: %s' % (prog, cmd, err) sys.exit(2) except KeyboardInterrupt: