def _main(): """The main function """ global prog prog = os.path.basename(sys.argv[0]) if len(sys.argv) < 2: print >> sys.stderr, 'usage: %s <command>' % prog print >> sys.stderr, \ ' Try "%s --help" for a list of supported commands' % prog sys.exit(utils.STGIT_GENERAL_ERROR) cmd = sys.argv[1] if cmd in ['-h', '--help']: if len(sys.argv) >= 3: cmd = commands.canonical_cmd(sys.argv[2]) sys.argv[2] = '--help' else: print_help() sys.exit(utils.STGIT_SUCCESS) if cmd == 'help': if len(sys.argv) == 3 and not sys.argv[2] in ['-h', '--help']: cmd = commands.canonical_cmd(sys.argv[2]) if not cmd in commands: out.error('%s help: "%s" command unknown' % (prog, cmd)) sys.exit(utils.STGIT_GENERAL_ERROR) sys.argv[0] += ' %s' % cmd command = commands[cmd] parser = argparse.make_option_parser(command) from pydoc import pager pager(parser.format_help()) else: print_help() sys.exit(utils.STGIT_SUCCESS) if cmd in ['-v', '--version', 'version']: from stgit.version import version print 'Stacked GIT %s' % version os.system('git --version') print 'Python version %s' % sys.version sys.exit(utils.STGIT_SUCCESS) if cmd in ['copyright']: print __copyright__ sys.exit(utils.STGIT_SUCCESS) # re-build the command line arguments cmd = commands.canonical_cmd(cmd) sys.argv[0] += ' %s' % cmd del(sys.argv[1]) command = commands[cmd] parser = argparse.make_option_parser(command) options, args = parser.parse_args() directory = command.directory # These modules are only used from this point onwards and do not # need to be imported earlier from stgit.exception import StgException from stgit.config import config_setup from ConfigParser import ParsingError, NoSectionError from stgit.stack import Series try: debug_level = int(os.environ.get('STGIT_DEBUG_LEVEL', 0)) except ValueError: out.error('Invalid STGIT_DEBUG_LEVEL environment variable') sys.exit(utils.STGIT_GENERAL_ERROR) try: directory.setup() config_setup() # Some commands don't (always) need an initialized series. if directory.needs_current_series: if hasattr(options, 'branch') and options.branch: command.crt_series = Series(options.branch) else: command.crt_series = Series() ret = command.func(parser, options, args) except (StgException, IOError, ParsingError, NoSectionError), err: directory.write_log(cmd) out.error(str(err), title = '%s %s' % (prog, cmd)) if debug_level > 0: traceback.print_exc() sys.exit(utils.STGIT_COMMAND_ERROR)
def main(): """The main function """ global prog prog = os.path.basename(sys.argv[0]) if len(sys.argv) < 2: print >> sys.stderr, 'usage: %s <command>' % prog print >> sys.stderr, \ ' Try "%s --help" for a list of supported commands' % prog sys.exit(1) cmd = sys.argv[1] if cmd in ['-h', '--help']: if len(sys.argv) >= 3: cmd = commands.canonical_cmd(sys.argv[2]) sys.argv[2] = '--help' else: print_help() sys.exit(0) if cmd == 'help': if len(sys.argv) == 3 and not sys.argv[2] in ['-h', '--help']: cmd = commands.canonical_cmd(sys.argv[2]) if not cmd in commands: out.error('%s help: "%s" command unknown' % (prog, cmd)) sys.exit(1) sys.argv[0] += ' %s' % cmd command = commands[cmd] parser = OptionParser(usage = command.usage, option_list = command.options) from pydoc import pager pager(parser.format_help()) else: print_help() sys.exit(0) if cmd in ['-v', '--version', 'version']: from stgit.version import version print 'Stacked GIT %s' % version os.system('git --version') print 'Python version %s' % sys.version sys.exit(0) if cmd in ['copyright']: print __copyright__ sys.exit(0) # re-build the command line arguments cmd = commands.canonical_cmd(cmd) sys.argv[0] += ' %s' % cmd del(sys.argv[1]) command = commands[cmd] 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 from stgit.utils import EditorException try: debug_level = int(os.environ['STGIT_DEBUG_LEVEL']) except KeyError: debug_level = 0 except ValueError: out.error('Invalid STGIT_DEBUG_LEVEL environment variable') sys.exit(1) 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': if hasattr(options, 'branch') and options.branch: command.crt_series = Series(options.branch) else: command.crt_series = Series() stgit.commands.common.crt_series = command.crt_series command.func(parser, options, args) except (IOError, ParsingError, NoSectionError, CmdException, StackException, GitException, GitMergeException, EditorException), err: print >> sys.stderr, '%s %s: %s' % (prog, cmd, err) if debug_level: raise else: sys.exit(2)
def _main(): """The main function """ global prog sys.argv = list(map(fsdecode_utf8, sys.argv)) prog = os.path.basename(sys.argv[0]) if len(sys.argv) < 2: print('usage: %s <command>' % prog, file=sys.stderr) print(' Try "%s --help" for a list of supported commands' % prog, file=sys.stderr) sys.exit(utils.STGIT_GENERAL_ERROR) cmd = sys.argv[1] if cmd in ['-h', '--help']: if len(sys.argv) >= 3: cmd = commands.canonical_cmd(sys.argv[2]) sys.argv[2] = '--help' else: print_help() sys.exit(utils.STGIT_SUCCESS) if cmd == 'help': if len(sys.argv) == 3 and not sys.argv[2] in ['-h', '--help']: cmd = commands.canonical_cmd(sys.argv[2]) sys.argv[0] += ' %s' % cmd command = commands[cmd] parser = argparse.make_option_parser(command) if is_cmd_alias(command): parser.remove_option('-h') pager(parser.format_help().encode()) else: print_help() sys.exit(utils.STGIT_SUCCESS) if cmd in ['-v', '--version', 'version']: from stgit.version import get_version print('Stacked GIT %s' % get_version()) os.system('git --version') print('Python version %s' % sys.version) sys.exit(utils.STGIT_SUCCESS) if cmd in ['copyright']: print(__copyright__) sys.exit(utils.STGIT_SUCCESS) # re-build the command line arguments cmd = commands.canonical_cmd(cmd) sys.argv[0] += ' %s' % cmd del sys.argv[1] command = commands[cmd] if is_cmd_alias(command): sys.exit(command.func(sys.argv[1:])) parser = argparse.make_option_parser(command) directory = command.directory # These modules are only used from this point onwards and do not # need to be imported earlier try: from configparser import ParsingError, NoSectionError except ImportError: from ConfigParser import ParsingError, NoSectionError from stgit.exception import StgException from stgit.config import config_setup from stgit.stack import Series try: debug_level = int(environ_get('STGIT_DEBUG_LEVEL', 0)) except ValueError: out.error('Invalid STGIT_DEBUG_LEVEL environment variable') sys.exit(utils.STGIT_GENERAL_ERROR) try: (options, args) = parser.parse_args() directory.setup() config_setup() # Some commands don't (always) need an initialized series. if directory.needs_current_series: if hasattr(options, 'branch') and options.branch: command.crt_series = Series(options.branch) else: command.crt_series = Series() ret = command.func(parser, options, args) except (StgException, IOError, ParsingError, NoSectionError) as err: directory.write_log(cmd) if debug_level > 0: traceback.print_exc(file=sys.stderr) out.error(str(err), title='%s %s' % (prog, cmd)) sys.exit(utils.STGIT_COMMAND_ERROR) except SystemExit: # Triggered by the option parser when it finds bad commandline # parameters. sys.exit(utils.STGIT_COMMAND_ERROR) except KeyboardInterrupt: sys.exit(utils.STGIT_GENERAL_ERROR) except BaseException: out.error('Unhandled exception:') traceback.print_exc(file=sys.stderr) sys.exit(utils.STGIT_BUG_ERROR) directory.write_log(cmd) sys.exit(ret or utils.STGIT_SUCCESS)
def _main(argv): prog = argv[0] = 'stg' if len(argv) < 2: print('usage: %s <command>' % prog, file=sys.stderr) print(' Try "%s --help" for a list of supported commands' % prog, file=sys.stderr) return utils.STGIT_GENERAL_ERROR cmd = argv[1] if cmd in ['-h', '--help']: if len(argv) >= 3: try: cmd = commands.canonical_cmd(argv[2]) except KeyError: return utils.STGIT_GENERAL_ERROR argv[2] = '--help' else: print_help(prog) return utils.STGIT_SUCCESS if cmd == 'help': if len(argv) == 3 and not argv[2] in ['-h', '--help']: try: cmd = commands.canonical_cmd(argv[2]) except KeyError: return utils.STGIT_GENERAL_ERROR argv[0] += ' %s' % cmd command = commands[cmd] parser = argparse.make_option_parser(command) if is_cmd_alias(command): parser.remove_option('-h') pager(parser.format_help().encode()) else: print_help(prog) return utils.STGIT_SUCCESS if cmd in ['-v', '--version', 'version']: print('Stacked Git %s' % get_version()) os.system('git --version') os.system('%s --version' % sys.executable) return utils.STGIT_SUCCESS if cmd in ['copyright']: print(__copyright__) return utils.STGIT_SUCCESS # re-build the command line arguments try: cmd = commands.canonical_cmd(cmd) except KeyError: return utils.STGIT_GENERAL_ERROR argv[0] += ' %s' % cmd del argv[1] command = commands[cmd] if is_cmd_alias(command): return command.func(argv[1:]) parser = argparse.make_option_parser(command) # These modules are only used from this point onwards and do not # need to be imported earlier from configparser import NoSectionError, ParsingError from stgit.config import config_setup from stgit.exception import StgException from stgit.lib.git import MergeConflictException try: debug_level = int(environ_get('STGIT_DEBUG_LEVEL', 0)) except ValueError: out.error('Invalid STGIT_DEBUG_LEVEL environment variable') return utils.STGIT_GENERAL_ERROR try: (options, args) = parser.parse_args(argv[1:]) command.directory.setup() config_setup() return command.func(parser, options, args) except MergeConflictException as err: if debug_level > 1: traceback.print_exc(file=sys.stderr) for conflict in err.conflicts: out.err(conflict) return utils.STGIT_CONFLICT except (StgException, IOError, ParsingError, NoSectionError) as err: if debug_level > 0: traceback.print_exc(file=sys.stderr) out.error(str(err), title='%s %s' % (prog, cmd)) return utils.STGIT_COMMAND_ERROR except SystemExit: # Triggered by the option parser when it finds bad commandline # parameters. return utils.STGIT_COMMAND_ERROR except KeyboardInterrupt: return utils.STGIT_GENERAL_ERROR except BaseException: out.error('Unhandled exception:') traceback.print_exc(file=sys.stderr) return utils.STGIT_BUG_ERROR