From a1a9949f57f294cd001d8589fdc727de9c19aae8 Mon Sep 17 00:00:00 2001 From: Vikraman Choudhury Date: Tue, 2 Aug 2011 04:33:09 +0530 Subject: add search to gentoostats-cli --- client/gentoostats-cli | 4 ++-- client/gentoostats/search.py | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 client/gentoostats/search.py (limited to 'client') diff --git a/client/gentoostats-cli b/client/gentoostats-cli index 6a237fc..a22ccc7 100755 --- a/client/gentoostats-cli +++ b/client/gentoostats-cli @@ -3,7 +3,7 @@ import argparse from gentoostats import list -#from gentoostats import search +from gentoostats import search def main(): parser = argparse.ArgumentParser() @@ -13,7 +13,7 @@ def main(): subparsers = parser.add_subparsers() list.add_parser(subparsers) -# search.add_parser(subparsers) + search.add_parser(subparsers) args = parser.parse_args() args.func(args) diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py new file mode 100644 index 0000000..165733e --- /dev/null +++ b/client/gentoostats/search.py @@ -0,0 +1,37 @@ + +import utils + +def pprint(title, object): + # TODO: write a custom pretty printer here + import pprint + print title + pprint.pprint(object) + +def add_parser(subparsers): + # TODO: add help and descriptions for all opts + search_parser = subparsers.add_parser('search') + search_parser.add_argument('-c', '--category') + search_parser.add_argument('-p', '--package') + search_parser.add_argument('-v', '--version') + search_parser.add_argument('-r', '--repo') + search_parser.add_argument('--min_hosts', type=int) + search_parser.add_argument('--max_hosts', type=int) + search_parser.set_defaults(func=search) + +def search(args): + url_base = '/search' + url_extra = '' + + url_extra += ('?', '&')[bool(url_extra)] + 'cat=' + args.category if args.category else '' + url_extra += ('?', '&')[bool(url_extra)] + 'pkg=' + args.package if args.package else '' + url_extra += ('?', '&')[bool(url_extra)] + 'ver=' + args.version if args.version else '' + url_extra += ('?', '&')[bool(url_extra)] + 'repo=' + args.repo if args.repo else '' + url_extra += ('?', '&')[bool(url_extra)] + 'min_hosts=' + str(args.min_hosts) if args.min_hosts else '' + url_extra += ('?', '&')[bool(url_extra)] + 'max_hosts=' + str(args.max_hosts) if args.max_hosts else '' + + print args.server + args.url + url_base + url_extra + + get_data = utils.GET(server = args.server, url = args.url + url_base + url_extra, headers = utils.headers) + data = utils.deserialize(get_data) + + pprint ('Search results', data) -- cgit v1.2.3-65-gdbad