def main(): """Launcher for the CLI.""" opt_parser = RoseOptionParser() opt_parser.add_my_options('name') opts, args = opt_parser.parse_args(sys.argv[1:]) event_handler = Reporter(opts.verbosity - opts.quietness) suite_vc_cmp = SuiteVCComparator(event_handler) suite_name = opts.name if not suite_name and args: suite_name = args[0] if not suite_name: suite_name = os.getenv(suite_vc_cmp.suite_engine_proc.SUITE_NAME_ENV) if not suite_name: opt_parser.print_usage(sys.stderr) sys.exit(2) try: lines = suite_vc_cmp.cmp_source_vc_info(suite_name=suite_name) except (StandardError, RosePopenError) as exc: event_handler(exc) traceback.print_exc() sys.exit(2) else: if lines is None: event_handler( '%s: rose-suite-run.version: VC info not found' % (suite_name), kind=Reporter.KIND_ERR, level=Reporter.FAIL) sys.exit(2) lines = list(line for line in lines) for line in lines: event_handler('%s\n' % line, prefix='') if lines: sys.exit(1) else: sys.exit(0)
def main(): """Launcher for the CLI.""" opt_parser = RoseOptionParser() opt_parser.add_my_options('name') opts, args = opt_parser.parse_args(sys.argv[1:]) event_handler = Reporter(opts.verbosity - opts.quietness) suite_vc_cmp = SuiteVCComparator(event_handler) suite_name = opts.name if not suite_name and args: suite_name = args[0] if not suite_name: suite_name = os.getenv(suite_vc_cmp.suite_engine_proc.SUITE_NAME_ENV) if not suite_name: opt_parser.print_usage(sys.stderr) sys.exit(2) try: lines = suite_vc_cmp.cmp_source_vc_info(suite_name=suite_name) except (StandardError, RosePopenError) as exc: event_handler(exc) traceback.print_exc() sys.exit(2) else: if lines is None: event_handler('%s: rose-suite-run.version: VC info not found' % (suite_name), kind=Reporter.KIND_ERR, level=Reporter.FAIL) sys.exit(2) lines = list(line for line in lines) for line in lines: event_handler('%s\n' % line, prefix='') if lines: sys.exit(1) else: sys.exit(0)
def lookup(argv): """CLI command to run the various search types""" opt_parser = RoseOptionParser().add_my_options( "address_mode", "all_revs", "lookup_mode", "no_headers", "prefixes", "print_format", "query_mode", "reverse", "search_mode", "sort") opts, args = opt_parser.parse_args(argv) if not args: sys.exit(opt_parser.print_usage()) if not opts.lookup_mode: if args[0].startswith("http"): opts.lookup_mode = "address" else: opts.lookup_mode = "search" ws_client = RosieWSClient( prefixes=opts.prefixes, event_handler=Reporter(opts.verbosity - opts.quietness)) try: if opts.lookup_mode == "address": data_and_url_list = ws_client.address_lookup(url=args[0]) elif opts.lookup_mode == "query": q_items = ws_client.query_split(args) for i, q_item in enumerate(q_items): q_items[i] = " ".join(q_item) data_and_url_list = ws_client.query( q_items, all_revs=int(opts.all_revs)) else: # if opts.lookup_mode == "search": data_and_url_list = ws_client.search( args, all_revs=int(opts.all_revs)) except RosieWSClientError as exc: if opts.debug_mode: traceback.print_exc(exc) sys.exit(str(exc)) for data, url in data_and_url_list: _display_maps(opts, ws_client, data, url)
def lookup(argv): """CLI command to run the various search types""" opt_parser = RoseOptionParser().add_my_options( "address_mode", "all_revs", "lookup_mode", "no_headers", "prefixes", "print_format", "query_mode", "reverse", "search_mode", "sort") opts, args = opt_parser.parse_args(argv) if not args: sys.exit(opt_parser.print_usage()) if not opts.lookup_mode: if args[0].startswith("http"): opts.lookup_mode = "address" else: opts.lookup_mode = "search" ws_client = RosieWSClient( prefixes=opts.prefixes, event_handler=Reporter(opts.verbosity - opts.quietness)) try: if opts.lookup_mode == "address": data_and_url_list = ws_client.address_lookup(url=args[0]) elif opts.lookup_mode == "query": q_items = ws_client.query_split(args) for i, q_item in enumerate(q_items): q_items[i] = " ".join(q_item) data_and_url_list = ws_client.query( q_items, all_revs=int(opts.all_revs)) else: # if opts.lookup_mode == "search": data_and_url_list = ws_client.search( args, all_revs=int(opts.all_revs)) except RosieWSClientError as exc: if opts.debug_mode: traceback.print_exc(exc) sys.exit(str(exc)) for data, url in data_and_url_list: _display_maps(opts, ws_client, data, url)
def lookup(argv): """CLI command to run the various search types""" opt_parser = RoseOptionParser().add_my_options( "all_revs", "no_headers", "prefix", "print_format", "query", "reverse", "search", "sort", "url") opts, args = opt_parser.parse_args(argv) if not args: sys.exit(opt_parser.print_usage()) if not opts.query and not opts.search and not opts.url: if args[0].startswith("http"): opts.url = True else: opts.search = True try: ws_client = RosieWSClient(prefix=opts.prefix) except UnknownRootError: sys.exit("No settings found for prefix: '%s'" % opts.prefix) results = None if opts.url: addr = args[0] if opts.debug_mode: results, url = ws_client.address_search(None, url=addr) else: try: results, url = ws_client.address_search(None, url=addr) except QueryError as e: sys.exit(ERR_INVALID_URL.format(args[0])) elif opts.query: q = query_split(args) if q is None: sys.exit(ERR_SYNTAX.format(" ".join(args))) for i, p in enumerate(q): q[i] = " ".join(p) if opts.all_revs: results, url = ws_client.query(q, all_revs=True) else: results, url = ws_client.query(q) elif opts.search: if opts.all_revs: results, url = ws_client.search(args, all_revs=True) else: results, url = ws_client.search(args) if results is not None: return _display_maps(opts, ws_client, results, url)
def lookup(argv): """CLI command to run the various search types""" opt_parser = RoseOptionParser().add_my_options("format", "all_revs", "prefix", "query", "reverse", "search", "sort", "url") opts, args = opt_parser.parse_args(argv) if not args: sys.exit(opt_parser.print_usage()) if not opts.query and not opts.search and not opts.url: if args[0].startswith("http"): opts.url = True else: opts.search = True results = None if opts.url: ws_client = Client() addr = args[0] try: results = ws_client.address_search(None,url=addr) url = addr except QueryError as e: results = [] elif opts.query: q = query_split(args) if q is None: sys.exit(ERR_SYNTAX.format(" ".join(args))) for i, p in enumerate(q): q[i] = " ".join(p) ws_client = Client(prefix=opts.prefix) if opts.all_revs: results, url = ws_client.query(q, all_revs=True) else: results, url = ws_client.query(q) elif opts.search: ws_client = Client(prefix=opts.prefix) if opts.all_revs: results, url = ws_client.search(args, all_revs=True) else: results, url = ws_client.search(args) if results is not None: return _display_maps(opts, ws_client, results, url)