From 6babfdf04d06cc3ca857c65f53cd2f520cc99a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Weigert?= Date: Thu, 3 Sep 2009 17:28:27 +0000 Subject: [PATCH] - added missing code for 'osc sr -l [ID]' - allow osc req as shortcut for osc request. - allow osc cat with one parameter, if it is a url. - core.py:makeurl() now prints the url for educational purposes if osc -v -v --- NEWS | 4 ++++ osc/commandline.py | 58 +++++++++++++++++++++++++++++++++------------- osc/core.py | 7 ++++-- 3 files changed, 51 insertions(+), 18 deletions(-) diff --git a/NEWS b/NEWS index 503ac292..e2f5122e 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ - option to download server side generated _service:* files on update - support for running source services locally. Happens by default on source update and build. + - added missing code for 'osc sr -l [ID]' + - allow osc req as shortcut for osc request. + - allow osc cat with one parameter, if it is a url. + - core.py:makeurl() now prints the url for educational purposes if osc -v -v 0.121.1 - fixed creation of new ~/.oscrc files diff --git a/osc/commandline.py b/osc/commandline.py index ff417d76..fecd7b6b 100755 --- a/osc/commandline.py +++ b/osc/commandline.py @@ -500,6 +500,8 @@ class Osc(cmdln.Cmdln): '(primary project where a package is developed)') @cmdln.option('-d', '--diff', action='store_true', help='show diff only instead of creating the actual request') + @cmdln.option('-l', '--list', action='store_true', + help='show submitrequests. Same as \'osc req list -M -a -t submit -D 0\'') @cmdln.alias("sr") @cmdln.alias("submitreq") @cmdln.alias("submitpac") @@ -518,18 +520,29 @@ class Osc(cmdln.Cmdln): ${cmd_option_list} """ + if opts.list: + opts.state = "" + opts.user = "" + opts.all = True + opts.brief = False + opts.unified = False + opts.type = "submit" + opts.mine = True + opts.days = 30 + return self.do_request('list', opts, *args) + args = slash_split(args) # remove this block later again oldcmds = ['create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke'] if args and args[0] in oldcmds: - print "***********************************************************************" - print "* WARNING: It looks that you are using this command with a *" - print "* deprecated syntax (maybe) ! *" - print "* Please run \"osc sr --help\" and \"osc req --help\" *" - print "* to see the new syntax. *" - print "* E.g. \"osc sr -l\" is shortcut for \"osc req list -M -s all -t submit\" *" - print "***********************************************************************" + print "************************************************************************" + print "* WARNING: It looks that you are using this command with a *" + print "* deprecated syntax (maybe) ! *" + print "* Please run \"osc sr --help\" and \"osc req --help\" *" + print "* to see the new syntax. *" + print "* E.g. \"osc sr -l\" is shortcut for \"osc req list -M -a -t submit -D 0\" *" + print "************************************************************************" if args[0] == 'create': args.pop(0) else: @@ -720,6 +733,7 @@ Please submit there instead, or use --nodevelproject to force direct submission. @cmdln.option('-M', '--mine', action='store_true', help='only show requests created by yourself') @cmdln.alias("rq") + @cmdln.alias("req") def do_request(self, subcmd, opts, *args): """${cmd_name}: Show and modify requests @@ -731,6 +745,8 @@ Please submit there instead, or use --nodevelproject to force direct submission. osc submitrequest osc deleterequest osc changedevelrequest + To send low level requests to the buildservice API, use: + osc api This command has the following sub commands: @@ -741,7 +757,7 @@ Please submit there instead, or use --nodevelproject to force direct submission. "log" will show the history of the given ID "show" will show the request itself, and generate a diff for review, if - used with the --diff option. + used with the --diff option. The keyword show can be ommitted if the ID is numeric. "decline" will change the request state to "declined" and append a message that you specify with the --message option. @@ -759,7 +775,7 @@ Please submit there instead, or use --nodevelproject to force direct submission. usage: osc request list [-M] [-U USER] [-s state] [-D DAYS] [-t type] [PRJ [PKG]] osc request log ID - osc request show [-d] [-b] ID + osc request [show] [-d] [-b] ID osc request accept [-m TEXT] ID osc request decline [-m TEXT] ID osc request revoke [-m TEXT] ID @@ -777,6 +793,9 @@ Please submit there instead, or use --nodevelproject to force direct submission. 'are mutually exclusive.') # 'req' defaults to 'req list -M -s all' + if args and args[0].isdigit(): + args = [ 'show', args[0] ] + if not args: args = [ 'list' ] opts.mine = 1 @@ -790,8 +809,8 @@ Please submit there instead, or use --nodevelproject to force direct submission. if not args or args[0] not in cmds: if subcmd == 'req': print >>sys.stderr, 'You may want to try "osc api" instead of "osc req".' - raise oscerr.WrongArgs('Unknown request action. Choose one of %s.' \ - % ', '.join(cmds)) + raise oscerr.WrongArgs('Unknown request action %s. Choose one of %s.' \ + % (args[0],', '.join(cmds))) cmd = args[0] del args[0] @@ -2131,11 +2150,6 @@ Please submit there instead, or use --nodevelproject to force direct submission. else: raise e - @cmdln.hide(1) - def do_req(self, subcmd, opts, *args): - print "Command req is obsolete. Please use 'osc api'" - sys.exit(1) - @cmdln.alias('r') @cmdln.option('-l', '--last-build', action='store_true', help='show last build results (succeeded/failed/unknown)') @@ -3366,11 +3380,23 @@ Please submit there instead, or use --nodevelproject to force direct submission. Examples: osc cat project package file osc cat project/package/file + osc cat http://api.opensuse.org/build/.../_log + osc cat http://api.opensuse.org/source/../_link ${cmd_usage} ${cmd_option_list} """ + if len(args) == 1 and (args[0].startswith('http://') or + args[0].startswith('https://')): + opts.method = 'GET' + opts.headers = None + opts.data = None + opts.file = None + return self.do_api('list', opts, *args) + + + args = slash_split(args) if len(args) != 3: raise oscerr.WrongArgs('Wrong number of arguments.') diff --git a/osc/core.py b/osc/core.py index ca2d6e27..e50552b1 100755 --- a/osc/core.py +++ b/osc/core.py @@ -5,7 +5,7 @@ # and distributed under the terms of the GNU General Public Licence, # either version 2, or version 3 (at your option). -__version__ = '0.122pre' +__version__ = '0.122pre.1' # __store_version__ is to be incremented when the format of the working copy # "store" changes in an incompatible way. Please add any needed migration # functionality to check_store_version(). @@ -1730,7 +1730,10 @@ def makeurl(baseurl, l, query=[]): query = urlencode(query) scheme, netloc = urlsplit(baseurl)[0:2] - return urlunsplit((scheme, netloc, '/'.join(l), query, '')) + u = urlunsplit((scheme, netloc, '/'.join(l), query, '')) + if conf.config['verbose'] > 2: + print "[",u,"]" + return u def http_request(method, url, headers={}, data=None, file=None, timeout=100):