def main(argv=None, tree=None): if argv: sys.argv = [sys.argv[0]] + argv if len(sys.argv) < 2: # Change to the root dir print '{0} {1}{3}{2}/{2}'.format(SET_CMD, path.ENV_VAR, QUOTE, EQUALS) return 0 # Take the first argument only cmd_path = sys.argv[1] try: if cmd_path == '.' or cmd_path == './': # Special case for '.': do nothing if path.ENV_VAR in os.environ: print make_cmd_line(os.environ[path.ENV_VAR]) else: print make_cmd_line('/') elif cmd_path == '..' or cmd_path == '../': # Special case for '..': go up one directory if path.ENV_VAR in os.environ and os.environ[path.ENV_VAR] and \ os.environ[path.ENV_VAR] != '/': parent = os.environ[path.ENV_VAR][\ :os.environ[path.ENV_VAR].rstrip('/').rfind('/')] if not parent: parent = '/' print make_cmd_line(parent) else: print make_cmd_line('/') else: full_path = path.cmd_path_to_full_path(cmd_path) print cd(cmd_path, full_path) except Exception, e: print >> sys.stderr, 'rtcwd: {0}'.format(e) return 1
def main(argv=None, tree=None): if argv: sys.argv = [sys.argv[0]] + argv if len(sys.argv) < 2: # Change to the root dir print '{0} {1}{3}{2}/{2}'.format(SET_CMD, path.ENV_VAR, QUOTE, EQUALS) return 0 # Take the first argument only cmd_path = sys.argv[1] try: if cmd_path == '.' or cmd_path == './': # Special case for '.': do nothing if path.ENV_VAR in os.environ: print make_cmd_line(os.environ[path.ENV_VAR]) else: print make_cmd_line('/') elif cmd_path == '..' or cmd_path == '../': # Special case for '..': go up one directory if path.ENV_VAR in os.environ and os.environ[path.ENV_VAR] and \ os.environ[path.ENV_VAR] != '/': parent = os.environ[path.ENV_VAR][\ :os.environ[path.ENV_VAR].rstrip('/').rfind('/')] if not parent: parent = '/' print make_cmd_line(parent) else: print make_cmd_line('/') else: full_path = path.cmd_path_to_full_path(cmd_path) print cd(cmd_path, full_path) except Exception, e: print >>sys.stderr, 'rtcwd: {0}'.format(e) return 1
def main(argv=None, tree=None): cmdkind = FSM_CMDS.keys() usage = '''Usage: %prog [options] <component path> [getstate|get[set]eventprofiles|get[set]structure] Configure FSM behavior of the component.''' parser = argparse.ArgumentParser(prog='rtfsm', description='Configure FSM behavior of the component.') parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %(default)s]') parser.add_argument('path', metavar='path', type=str, nargs=1, help='Path to component.') parser.add_argument('command', metavar='command', type=str, nargs=1, choices=cmdkind, help='Select from {0}.'.format(', '.join(cmdkind))) parser.add_argument('argument', metavar='argument', type=str, nargs='?', help= 'Command "seteventprofiles" takes profiles as the argument (e.g. "toggle:TimedShort,toggle2:TimedString"). ' + 'Command "setstructure" takes scxml file as the argument.') if argv: sys.argv = [sys.argv[0]] + argv options = parser.parse_args() full_path = path.cmd_path_to_full_path(options.path[0]) command = options.command[0] argument = None if command == 'seteventprofiles': if options.argument is None: print('{0}: No argument to {1} command '\ 'specified.'.format(sys.argv[0], command), file=sys.stderr) return 1 argument = [] for p in options.argument.split(','): argument.append(p.split(':')) elif command == 'setstructure': if options.argument is None: print('{0}: No argument to {1} command '\ 'specified.'.format(sys.argv[0], command), file=sys.stderr) return 1 with open(options.argument, 'r') as fh: argument = fh.read() if not argument: print('{0}: Unable to read file {1} specified to {2} command.'\ .format(sys.argv[0], options.argument[0], command), file=sys.stderr) return 1 try: result = manage_fsm(options.path[0], full_path, command, argument, options, tree=tree) if result: print('\n'.join(result)) except Exception as e: if options.verbose: traceback.print_exc() print('{0}: {1}'.format(sys.argv[0], e), file=sys.stderr) return 1 return 0
def get_paths(comps, ports): comp_paths = [] port_paths = [] for c in comps: fp = path.cmd_path_to_full_path(c) c_path, c_port = rtctree.path.parse_path(fp) if c_port: raise rts_exceptions.NotAComponentError(c) comp_paths.append((fp, c_path)) for p in ports: fp = path.cmd_path_to_full_path(p) p_path, p_port = rtctree.path.parse_path(fp) if not p_port: raise rts_exceptions.NotAPortError((p_path, p_port)) cp = fp[:fp.rfind(':')] if (cp, p_path) not in comp_paths: comp_paths.append((cp, p_path)) port_paths.append((cp, p_path, p_port)) return comp_paths, port_paths
def parse_member_paths(source_paths): paths = [] for p in source_paths: ports = [] split = p.split(':') if len(split) == 2: p = split[0] ports = split[1].split(',') elif len(split) > 2: raise rtctree.exceptions.BadPathError(p) fp = path.cmd_path_to_full_path(p) c_path, ignored = rtctree.path.parse_path(fp) paths.append((p, c_path, ports)) return paths
def main(argv=None, tree=None): usage = '''Usage: %prog [options] <manager:name|composite component path> Manage composite components.''' version = rtshell.RTSH_VERSION parser = optparse.OptionParser(usage=usage, version=version) parser.add_option('-a', '--add', dest='add', action='append', type='string', default=[], help='A component to include in the ' 'composition. Specify a comma-separated list of ports to export ' 'after the component name, separated by a colon.') parser.add_option('-o', '--options', dest='options', action='store', type='string', default='', help='Extra options to pass to the '\ 'component on creation.') parser.add_option('-r', '--remove', dest='remove', action='append', type='string', default=[], help='A component or ports to remove ' 'from the composition.') parser.add_option('-t', '--type', dest='type', action='store', type='string', default='PeriodicECSharedComposite', help='Type of composite component to create. [Default: %default]') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv try: options, args = parser.parse_args() except optparse.OptionError as e: print('OptionError:', e, file=sys.stderr) return 1 if len(args) != 1: print('{0}: No manager or existing composite component '\ 'specified.'.format(sys.argv[0]), file=sys.stderr) return 1 full_path = path.cmd_path_to_full_path(args[0]) try: manage_composition(args[0], full_path, options, tree=tree) except Exception as e: if options.verbose: traceback.print_exc() print('{0}: {1}'.format(sys.argv[0], e), file=sys.stderr) return 1 return 0
parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv try: options, args = parser.parse_args() except optparse.OptionError, e: print >>sys.stderr, 'OptionError:', e return 1 if len(args) != 1: print >>sys.stderr, '{0}: No manager or existing composite component '\ 'specified.'.format(sys.argv[0]) return 1 full_path = path.cmd_path_to_full_path(args[0]) try: manage_composition(args[0], full_path, options, tree=tree) except Exception, e: if options.verbose: traceback.print_exc() print >>sys.stderr, '{0}: {1}'.format(sys.argv[0], e) return 1 return 0 # vim: tw=79
def main(argv=None, tree=None): def cmd_cb(option, opt, val, parser): if not hasattr(parser.values, 'cmds'): setattr(parser.values, 'cmds', []) if opt == '-l' or opt == '--load': # Check the module path is correct before executing any commands items = re.split(':([^/]+)', val) if len(items) != 3: raise optparse.OptionValueError('No initialisation function ' 'specified.') parser.values.cmds.append((load_module, items[0:2])) elif opt == '-c' or opt == '--create': parser.values.cmds.append((create_component, val)) elif opt == '-d' or opt == '--delete': parser.values.cmds.append((delete_component, val)) elif opt == '-u' or opt == '--unload': parser.values.cmds.append((unload_module, val)) usage = '''Usage: %prog [options] <path> Create and remove components with a manager.''' version = rtshell.RTSH_VERSION parser = optparse.OptionParser(usage=usage, version=version) parser.add_option('-c', '--create', action='callback', callback=cmd_cb, type='string', help='Create a new component instance from the ' 'specified loaded module. Properties of the new component an be ' 'specified after the module name prefixed with a question mark. ' 'e.g. ConsoleIn?instance_name=bleg&another_param=value') parser.add_option('-d', '--delete', action='callback', callback=cmd_cb, type='string', help='Shut down and delete the specified component ' 'instance.') parser.add_option('-l', '--load', action='callback', callback=cmd_cb, type='string', help='Load the module into the manager. An ' 'initialisation function must be specified after the module path ' 'separated by a ":".') parser.add_option('-u', '--unload', action='callback', callback=cmd_cb, type='string', help='Unload the module from the manager.') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv options, args = parser.parse_args() if len(args) != 1: print >>sys.stderr, '{0}: No manager specified.'.format( os.path.basename(sys.argv[0])) return 1 try: if args[0].startswith('corbaloc::'): # Direct connection to manager mgr = DirectManager(args[0]) else: # Access via the tree full_path = path.cmd_path_to_full_path(args[0]) tree, mgr = get_manager(args[0], full_path, tree) if not hasattr(options, 'cmds'): print >>sys.stderr, '{0}: No commands specified.'.format( os.path.basename(sys.argv[0])) return 1 for c in options.cmds: c[0](mgr, c[1]) except Exception, e: if options.verbose: traceback.print_exc() print >>sys.stderr, '{0}: {1}'.format(os.path.basename(sys.argv[0]), e) return 1
def main(argv=None, tree=None): cmdkind = FSM_CMDS.keys() usage = '''Usage: %prog [options] <component path> [getstate|get[set]eventprofiles|get[set]structure] Configure FSM behavior of the component.''' parser = argparse.ArgumentParser( prog='rtfsm', description='Configure FSM behavior of the component.') parser.add_argument( '-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %(default)s]') parser.add_argument('path', metavar='path', type=str, nargs=1, help='Path to component.') parser.add_argument('command', metavar='command', type=str, nargs=1, choices=cmdkind, help='Select from {0}.'.format(', '.join(cmdkind))) parser.add_argument( 'argument', metavar='argument', type=str, nargs='?', help= 'Command "seteventprofiles" takes profiles as the argument (e.g. "toggle:TimedShort,toggle2:TimedString"). ' + 'Command "setstructure" takes scxml file as the argument.') if argv: sys.argv = [sys.argv[0]] + argv options = parser.parse_args() full_path = path.cmd_path_to_full_path(options.path[0]) command = options.command[0] argument = None if command == 'seteventprofiles': if options.argument is None: print('{0}: No argument to {1} command '\ 'specified.'.format(sys.argv[0], command), file=sys.stderr) return 1 argument = [] for p in options.argument.split(','): argument.append(p.split(':')) elif command == 'setstructure': if options.argument is None: print('{0}: No argument to {1} command '\ 'specified.'.format(sys.argv[0], command), file=sys.stderr) return 1 with open(options.argument, 'r') as fh: argument = fh.read() if not argument: print('{0}: Unable to read file {1} specified to {2} command.'\ .format(sys.argv[0], options.argument[0], command), file=sys.stderr) return 1 try: result = manage_fsm(options.path[0], full_path, command, argument, options, tree=tree) if result: print('\n'.join(result)) except Exception as e: if options.verbose: traceback.print_exc() print('{0}: {1}'.format(sys.argv[0], e), file=sys.stderr) return 1 return 0
def main(argv=None, tree=None): def cmd_cb(option, opt, val, parser): if not hasattr(parser.values, 'cmds'): setattr(parser.values, 'cmds', []) if opt == '-l' or opt == '--load': # Check the module path is correct before executing any commands items = re.split(':([^/]+)', val) if len(items) != 3: raise optparse.OptionValueError('No initialisation function ' 'specified.') parser.values.cmds.append((load_module, items[0:2])) elif opt == '-c' or opt == '--create': parser.values.cmds.append((create_component, val)) elif opt == '-d' or opt == '--delete': parser.values.cmds.append((delete_component, val)) elif opt == '-u' or opt == '--unload': parser.values.cmds.append((unload_module, val)) usage = '''Usage: %prog [options] <path> Create and remove components with a manager.''' version = rtshell.RTSH_VERSION parser = optparse.OptionParser(usage=usage, version=version) parser.add_option( '-c', '--create', action='callback', callback=cmd_cb, type='string', help='Create a new component instance from the ' 'specified loaded module. Properties of the new component an be ' 'specified after the module name prefixed with a question mark. ' 'e.g. ConsoleIn?instance_name=bleg&another_param=value') parser.add_option('-d', '--delete', action='callback', callback=cmd_cb, type='string', help='Shut down and delete the specified component ' 'instance.') parser.add_option( '-l', '--load', action='callback', callback=cmd_cb, type='string', help='Load the module into the manager. An ' 'initialisation function must be specified after the module path ' 'separated by a ":".') parser.add_option('-u', '--unload', action='callback', callback=cmd_cb, type='string', help='Unload the module from the manager.') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv options, args = parser.parse_args() if len(args) != 1: print('{0}: No manager specified.'.format(os.path.basename( sys.argv[0])), file=sys.stderr) return 1 try: if args[0].startswith('corbaloc::'): # Direct connection to manager mgr = DirectManager(args[0]) else: # Access via the tree full_path = path.cmd_path_to_full_path(args[0]) tree, mgr = get_manager(args[0], full_path, tree) if not hasattr(options, 'cmds'): print('{0}: No commands specified.'.format( os.path.basename(sys.argv[0])), file=sys.stderr) return 1 for c in options.cmds: c[0](mgr, c[1]) except Exception as e: if options.verbose: traceback.print_exc() print('{0}: {1}'.format(os.path.basename(sys.argv[0]), e), file=sys.stderr) return 1 return 0
dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv try: options, args = parser.parse_args() except optparse.OptionError, e: print >> sys.stderr, 'OptionError:', e return 1 if len(args) != 1: print >>sys.stderr, '{0}: No manager or existing composite component '\ 'specified.'.format(sys.argv[0]) return 1 full_path = path.cmd_path_to_full_path(args[0]) try: manage_composition(args[0], full_path, options, tree=tree) except Exception, e: if options.verbose: traceback.print_exc() print >> sys.stderr, '{0}: {1}'.format(sys.argv[0], e) return 1 return 0 # vim: tw=79
def main(argv=None, tree=None): usage = '''Usage: %prog [options] <manager:name|composite component path> Manage composite components.''' version = rtshell.RTSH_VERSION parser = optparse.OptionParser(usage=usage, version=version) parser.add_option( '-a', '--add', dest='add', action='append', type='string', default=[], help='A component to include in the ' 'composition. Specify a comma-separated list of ports to export ' 'after the component name, separated by a colon.') parser.add_option('-o', '--options', dest='options', action='store', type='string', default='', help='Extra options to pass to the '\ 'component on creation.') parser.add_option('-r', '--remove', dest='remove', action='append', type='string', default=[], help='A component or ports to remove ' 'from the composition.') parser.add_option( '-t', '--type', dest='type', action='store', type='string', default='PeriodicECSharedComposite', help='Type of composite component to create. [Default: %default]') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Output verbose information. [Default: %default]') if argv: sys.argv = [sys.argv[0]] + argv try: options, args = parser.parse_args() except optparse.OptionError as e: print('OptionError:', e, file=sys.stderr) return 1 if len(args) != 1: print('{0}: No manager or existing composite component '\ 'specified.'.format(sys.argv[0]), file=sys.stderr) return 1 full_path = path.cmd_path_to_full_path(args[0]) try: manage_composition(args[0], full_path, options, tree=tree) except Exception as e: if options.verbose: traceback.print_exc() print('{0}: {1}'.format(sys.argv[0], e), file=sys.stderr) return 1 return 0