def rosws_stacks_main(argv=None): """ Calls the function corresponding to the first argument. """ if argv is None: argv = sys.argv if ('--help' in argv): usage() return 0 if len(argv) < 2: try: workspace = get_workspace(argv, os.getcwd(), config_filename=ROSINSTALL_FILENAME, varname="ROS_WORKSPACE") argv.append('info') except MultiProjectException as exc: print(str(exc)) usage() return 0 try: command = argv[1] args = argv[2:] if command == 'help': if len(argv) < 3: usage() return 0 else: command = argv[2] args = argv[3:] args.insert(0, "-h") cli = RosWsStacksCLI() commands = { 'add': cli.cmd_add_stack, 'delete': cli.cmd_delete_stack, } if command not in commands: if os.path.exists(command): args = ['-t', command] + args command = 'info' else: if command.startswith('-'): print("First argument must be name of a command: %s" % command) else: print("Error: unknown command: %s" % command) usage() return 1 workspace = get_workspace(args, os.getcwd(), config_filename=ROSINSTALL_FILENAME) result = commands[command](workspace, args) or 0 return result except KeyboardInterrupt: pass
def wstool_main(argv=None, usage=None): """ Calls the function corresponding to the first argument. :param argv: sys.argv by default :param usage: function printing usage string, multiproject_cli.list_usage by default """ if argv is None: argv = sys.argv if (sys.argv[0] == '-c'): sys.argv = [_PROGNAME] + sys.argv[1:] if '--version' in argv: print("%s: \t%s\n%s" % (_PROGNAME, rosinstall.__version__.version, cmd_version())) sys.exit(0) if not usage: usage = lambda: print(list_usage(progname=_PROGNAME, description=__doc__, command_keys=__MULTIPRO_CMD_HELP_LIST__, command_helps=__MULTIPRO_CMD_DICT__, command_aliases=__MULTIPRO_CMD_ALIASES__)) workspace = None if len(argv) < 2: try: workspace = get_workspace(argv, os.getcwd(), config_filename=ROSINSTALL_FILENAME) argv.append('info') except MultiProjectException as e: print(str(e)) usage() return 0 if '--help' in argv or '-h' in argv: usage() return 0 try: command = argv[1] args = argv[2:] if command == 'help': if len(argv) < 3: usage() return 0 else: command = argv[2] args = argv[3:] args.insert(0, "--help") # help help if command == 'help': usage() return 0 cli = WstoolCLI(progname=_PROGNAME) # commands for which we do not infer target workspace commands = {'init': cli.cmd_init} # commands which work on a workspace ws_commands = { 'info': cli.cmd_info, 'remove': cli.cmd_remove, 'set': cli.cmd_set, 'merge': cli.cmd_merge, 'diff': cli.cmd_diff, 'status': cli.cmd_status, 'update': cli.cmd_update} for label in list(ws_commands.keys()): if label in __MULTIPRO_CMD_ALIASES__: ws_commands[__MULTIPRO_CMD_ALIASES__[label]] = ws_commands[label] if command not in commands and command not in ws_commands: if os.path.exists(command): args = ['-t', command] + args command = 'info' else: if command.startswith('-'): print("First argument must be name of a command: %s" % command) else: print("Error: unknown command: %s" % command) usage() return 1 if command in commands: return commands[command](args) else: if workspace is None: workspace = get_workspace(args, os.getcwd(), config_filename=ROSINSTALL_FILENAME) return ws_commands[command](workspace, args) except KeyboardInterrupt: return 1
def rosws_main(argv=None, usage=None): """ Calls the function corresponding to the first argument. :param argv: sys.argv by default :param usage: function printing usage string, multiproject_cli.list_usage by default """ if argv is None: argv = sys.argv if (sys.argv[0] == '-c'): sys.argv = [_PROGNAME] + sys.argv[1:] if '--version' in argv: print("%s: \t%s\n%s" % (_PROGNAME, rosinstall.__version__.version, cmd_version())) sys.exit(0) if not usage: usage = lambda: print( list_usage(progname=_PROGNAME, description=__doc__, command_keys=__ROSWS_CMD_HELP_LIST__, command_helps=__ROSWS_CMD_DICT__, command_aliases=__MULTIPRO_CMD_ALIASES__)) workspace = None if len(argv) < 2: try: workspace = get_workspace(argv, os.getcwd(), config_filename=ROSINSTALL_FILENAME, varname=_VARNAME) argv.append('info') except MultiProjectException as e: print(str(e)) usage() return 0 if '--help' == argv[1]: usage() return 0 try: command = argv[1] args = argv[2:] if command == 'help': if len(argv) < 3: usage() return 0 else: command = argv[2] args = argv[3:] args.insert(0, "--help") # help help if command == 'help': usage() return 0 cli = RoswsCLI() # commands for which we do not infer target workspace commands = {'init': cli.cmd_init} # commands which work on a workspace ws_commands = { 'info': cli.cmd_info, 'remove': cli.cmd_remove, 'regenerate': cli.cmd_regenerate, 'set': cli.cmd_set, 'merge': cli.cmd_merge, 'diff': cli.cmd_diff, 'status': cli.cmd_status, 'update': cli.cmd_update } for label in list(ws_commands.keys()): if label in __MULTIPRO_CMD_ALIASES__: ws_commands[ __MULTIPRO_CMD_ALIASES__[label]] = ws_commands[label] if command not in commands and command not in ws_commands: if os.path.exists(command): args = ['-t', command] + args command = 'info' else: if command.startswith('-'): print("First argument must be name of a command: %s" % command) else: print("Error: unknown command: %s" % command) usage() return 1 if command in commands: return commands[command](args) else: if workspace is None and not '--help' in args and not '-h' in args: workspace = get_workspace(args, os.getcwd(), config_filename=ROSINSTALL_FILENAME, varname=_VARNAME) return ws_commands[command](workspace, args) except KeyboardInterrupt: return 1