X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/6a093bbbfc2b933a78253ea23287a411631565c5..2fef9462b26126402f26140a02d3e16cdd2d9928:/stgit/main.py diff --git a/stgit/main.py b/stgit/main.py index 0b19e63..6d86ee4 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -30,6 +30,7 @@ from stgit.commands.common import * # The commands import stgit.commands.add import stgit.commands.applied +import stgit.commands.branch import stgit.commands.delete import stgit.commands.diff import stgit.commands.clean @@ -43,6 +44,7 @@ import stgit.commands.imprt import stgit.commands.init import stgit.commands.mail import stgit.commands.new +import stgit.commands.patches import stgit.commands.pick import stgit.commands.pop import stgit.commands.pull @@ -63,6 +65,7 @@ import stgit.commands.unapplied commands = { 'add': stgit.commands.add, 'applied': stgit.commands.applied, + 'branch': stgit.commands.branch, 'delete': stgit.commands.delete, 'diff': stgit.commands.diff, 'clean': stgit.commands.clean, @@ -76,6 +79,7 @@ commands = { 'init': stgit.commands.init, 'mail': stgit.commands.mail, 'new': stgit.commands.new, + 'patches': stgit.commands.patches, 'pick': stgit.commands.pick, 'pop': stgit.commands.pop, 'pull': stgit.commands.pull, @@ -121,10 +125,15 @@ def main(): cmd = sys.argv[1] if cmd in ['-h', '--help', 'help']: - print_help() - sys.exit(0) + if len(sys.argv) == 3 and sys.argv[2] in commands: + cmd = sys.argv[2] + sys.argv[2] = '--help'; + else: + print_help() + sys.exit(0) if cmd in ['-v', '--version', 'version']: print 'Stacked GIT %s' % version + os.system('git --version') print 'Python version %s' % sys.version sys.exit(0) if cmd in ['copyright']: @@ -145,21 +154,21 @@ def main(): option_list = command.options) options, args = parser.parse_args() try: - # 'clone' doesn't expect an already initialised GIT tree - if cmd == 'clone': - stgit.commands.common.crt_series = stack.Series('master') - elif hasattr(options, 'branch') and options.branch: - stgit.commands.common.crt_series = stack.Series(options.branch) - else: - stgit.commands.common.crt_series = stack.Series() - # the line below is a simple way to avoid an exception when - # stgit is run outside an initialised tree - setattr(command, 'crt_series', stgit.commands.common.crt_series) + # 'clone' doesn't expect an already initialised GIT tree. A Series + # object will be created after the GIT tree is cloned + if cmd != 'clone': + if hasattr(options, 'branch') and options.branch: + command.crt_series = stack.Series(options.branch) + else: + command.crt_series = stack.Series() + stgit.commands.common.crt_series = command.crt_series command.func(parser, options, args) except (IOError, CmdException, stack.StackException, git.GitException), \ err: print >> sys.stderr, '%s %s: %s' % (prog, cmd, err) sys.exit(2) + except KeyboardInterrupt: + sys.exit(1) sys.exit(0)