Ejemplo n.º 1
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)
Ejemplo n.º 2
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)
Ejemplo n.º 3
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)
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)