[packagedb-cli] Fix variable names
by Pierre-YvesChibon
commit 62ac43816c07061bfa0ba646a77cd8f4c3215303
Author: Toshio Kuratomi <toshio(a)fedoraproject.org>
Date: Thu Feb 28 09:28:45 2013 -0800
Fix variable names
pkgdb-cli | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index 9db4f42..be24c2f 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -823,7 +823,7 @@ def orphan_package(packagename, branch='devel', allpkgs=False,
log.debug("Orphan {0} in all branches".format(packagename))
branches = _get_active_branches(packagename)
for branch in branches:
- _update_owner_one_package(pkg, branch, action="orphan",
+ _update_owner_one_package(packagename, branch, action="orphan",
username=username, password=password)
else:
log.debug("Orphan {0} in {1}".format(packagename, branch))
11 years, 2 months
[packagedb-cli] Change the way auth is done slightly so that we can use the session cookie
by Pierre-YvesChibon
commit 0850001cb77d6545db3aab37904fe4a7b2c86168
Author: Toshio Kuratomi <toshio(a)fedoraproject.org>
Date: Thu Feb 28 09:16:00 2013 -0800
Change the way auth is done slightly so that we can use the session cookie
pkgdb-cli | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index b0ca6b6..9db4f42 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -15,7 +15,7 @@
# license.
"""
-from fedora.client import PackageDB, AppError, ServerError
+from fedora.client import AccountSystem, PackageDB, AppError, AuthError, ServerError
from bugzilla.rhbugzilla import RHBugzilla
import argparse
import logging
@@ -29,6 +29,7 @@ version = '1.4.1'
kojiclient = koji.ClientSession('http://koji.fedoraproject.org/kojihub',
{})
pkgdbclient = PackageDB('https://admin.fedoraproject.org/pkgdb')
+fasclient = AccountSystem('https://admin.fedoraproject.org/accounts')
bzclient = RHBugzilla(url='https://bugzilla.redhat.com/xmlrpc.cgi')
bold = "\033[1m"
red = "\033[0;31m"
@@ -86,10 +87,17 @@ def _get_client_authentified(username=None, password=None):
except:
log.debug('Could not read Fedora cert, using login name')
username = raw_input('FAS username: ')
- if password is None:
- password = getpass.getpass('FAS password: ')
pkgdbclient.username = username
- pkgdbclient.password = password
+ if password is None:
+ if pkgdbclient.session_id:
+ fasclient.username = username
+ # Really wish there was a better way to verify that a
+ # session_id is not expired
+ try:
+ discard = fasclient.send_request('/home', auth=True)
+ except AuthError:
+ password = getpass.getpass('FAS password: ')
+ pkgdbclient.password = password
def _get_group_info(group, statusmap, tmpstring="", pending=False):
@@ -1102,7 +1110,6 @@ def do_list(args):
def do_orphan(args):
-
log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("branch : {0}".format(args.branch))
@@ -1126,7 +1133,6 @@ def do_unorphan(args):
def do_request(args):
-
log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("branch : {0}".format(args.branch))
@@ -1138,7 +1144,6 @@ def do_request(args):
def do_update(args):
-
log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("acl : {0}".format(args.action))
@@ -1155,7 +1160,7 @@ def do_update(args):
def do_branch(args):
-
+
log.info("List all active branches")
branches = _get_active_branches()
branches.sort()
11 years, 2 months
[packagedb-cli] Update releave version
by Pierre-YvesChibon
commit ced3e6c75a829ba5e8556f32313410cc01ec6ff2
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Thu Feb 28 13:22:36 2013 +0100
Update releave version
pkgdb-cli | 2 +-
setup.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index 6ead3aa..b0ca6b6 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -25,7 +25,7 @@ import sys
import re
import fedora_cert
-version = '1.4.0'
+version = '1.4.1'
kojiclient = koji.ClientSession('http://koji.fedoraproject.org/kojihub',
{})
pkgdbclient = PackageDB('https://admin.fedoraproject.org/pkgdb')
diff --git a/setup.py b/setup.py
index 7b2cbf5..be09a89 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ from distutils.core import setup
setup(
name = 'packagedb-cli',
description = 'A command line tool to access the Fedora Package Database.',
- version = '1.4.0',
+ version = '1.4.1',
license = 'GPLv2+',
download_url = 'https://fedorahosted.org/releases/p/a/packagedb-cli/',
url = 'https://fedorahosted.org/packagedb-cli/',
11 years, 2 months
[packagedb-cli] Fix typo, it should use args and not arg anymore
by Pierre-YvesChibon
commit 8288fb52870cc5bb9ead681f2399e449e5b69dec
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Thu Feb 28 13:21:36 2013 +0100
Fix typo, it should use args and not arg anymore
pkgdb-cli | 27 ++++++++++++++-------------
1 files changed, 14 insertions(+), 13 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index cf97865..6ead3aa 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -1103,43 +1103,43 @@ def do_list(args):
def do_orphan(args):
- log.info("user : {0}".format(arg.username))
+ log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("branch : {0}".format(args.branch))
#log.info("pattern : {0}".format(args.pattern))
log.info("all : {0}".format(args.all))
log.info("retire : {0}".format(args.retire))
orphan_package(args.package, args.branch, args.all,
- arg.username, arg.password)
+ args.username, args.password)
if args.retire is True:
retire_package(args.package, args.branch,
- arg.username, arg.password)
+ args.username, args.password)
def do_unorphan(args):
- log.info("user : {0}".format(arg.username))
+ log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("branch : {0}".format(args.branch))
log.info("owner : {0}".format(args.owner))
unorphan_package(args.package, args.branch, args.owner,
- arg.username, arg.password,)
+ args.username, args.password,)
def do_request(args):
- log.info("user : {0}".format(arg.username))
+ log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("branch : {0}".format(args.branch))
log.info("acl : {0}".format(args.action))
log.info("cancel : {0}".format(args.cancel))
handle_acl(args.package, action=args.action,
branch=args.branch, cancel=args.cancel,
- username=arg.username, password=arg.password)
+ username=args.username, password=args.password)
def do_update(args):
- log.info("user : {0}".format(arg.username))
+ log.info("user : {0}".format(args.username))
log.info("package : {0}".format(args.package))
log.info("acl : {0}".format(args.action))
log.info("requester : {0}".format(args.user))
@@ -1149,8 +1149,9 @@ def do_update(args):
answer = "Denied"
if args.approve:
answer = "Approved"
- answer_acl_request(args.package, args.action, args.user,
- answer, args.branch, arg.username, arg.password)
+ print args
+ #answer_acl_request(args.package, args.action, args.user,
+ #answer, args.branch, args.username, args.password)
def do_branch(args):
@@ -1187,6 +1188,6 @@ if __name__ == '__main__':
except AppError, e:
print '{0}: {1}'.format(e.name, e.message)
sys.exit(4)
- except Exception, e:
- print 'Error: {0}'.format(e)
- sys.exit(5)
+ #except Exception, e:
+ #print 'Error: {0}'.format(e)
+ #sys.exit(5)
11 years, 2 months
[packagedb-cli] Update version number
by Pierre-YvesChibon
commit 83c5a034a9bd224784f620bbe4dea60925a503e9
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Thu Feb 21 18:27:21 2013 +0100
Update version number
README | 4 ++--
pkgdb-cli | 2 +-
setup.py | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/README b/README
index 03ed064..f94b1e7 100644
--- a/README
+++ b/README
@@ -4,8 +4,8 @@ Fedora PackageDB-cli
:Author: Pierre-Yves Chibon
:Contact: pingou(a)fedoraproject.org
-:Date: Tue 17 May, 2011
-:Version: 0.4.x
+:Date: Thu 21 Feb, 2013
+:Version: 1.4.x
The `PackageDB-cli` is a commande line interface to the PackageDB of Fedora.
diff --git a/pkgdb-cli b/pkgdb-cli
index e832376..cf97865 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -25,7 +25,7 @@ import sys
import re
import fedora_cert
-version = '1.3.0'
+version = '1.4.0'
kojiclient = koji.ClientSession('http://koji.fedoraproject.org/kojihub',
{})
pkgdbclient = PackageDB('https://admin.fedoraproject.org/pkgdb')
diff --git a/setup.py b/setup.py
index 622eb25..7b2cbf5 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ from distutils.core import setup
setup(
name = 'packagedb-cli',
description = 'A command line tool to access the Fedora Package Database.',
- version = '1.3.0',
+ version = '1.4.0',
license = 'GPLv2+',
download_url = 'https://fedorahosted.org/releases/p/a/packagedb-cli/',
url = 'https://fedorahosted.org/packagedb-cli/',
11 years, 2 months
[packagedb-cli] Argparse does a fine job at specifying the usage, let's rely on it
by Pierre-YvesChibon
commit 90b9044042d96ff151bc0846a53ca3db9a6f0c3d
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Tue Feb 19 14:13:24 2013 +0100
Argparse does a fine job at specifying the usage, let's rely on it
pkgdb-cli | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index ecd8738..e832376 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -53,8 +53,6 @@ if '--test' in sys.argv:
pkgdbclient = PackageDB('https://admin.stg.fedoraproject.org/pkgdb',
insecure=True)
-cmdlist = ['acl', 'branches', 'list', 'request', 'update', 'orphan',
- 'unorphan']
actionlist = ['watchbugzilla', 'watchcommits', 'commit', 'approveacls']
@@ -938,9 +936,7 @@ def setup_parser():
"""
Set the main arguments.
"""
- usage = "\nCommands: {0}".format(', '.join(cmdlist))
parser = argparse.ArgumentParser(
- usage="%(prog)s [global options] COMMAND [options]" + usage,
prog="pkgdb-cli")
# General connection options
parser.add_argument('--user', dest="username",
11 years, 2 months
[packagedb-cli] Port pkgdb-cli to use the subparser of argparse
by Pierre-YvesChibon
commit 02faf9481261a110e868b54ba2094fcfc7d0193c
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Tue Feb 19 14:12:18 2013 +0100
Port pkgdb-cli to use the subparser of argparse
This handles much more nicely the different actions which are even
documented now.
pkgdb-cli | 384 +++++++++++++++++++++++++++++++------------------------------
1 files changed, 194 insertions(+), 190 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index 0005452..ecd8738 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -934,141 +934,236 @@ def retire_package(packagename, branch='devel', allpkgs=False,
_retire_one_package(packagename, branch, username, password)
-def setup_action_parser(action, last_args=None):
+def setup_parser():
"""
- Parse the remaining argument for action specific arguments.
-
- :arg action the action for which the rest of the arguments will be
- parsed. Actions can be "acl" or "list".
+ Set the main arguments.
"""
- log.info('Action called: {0}'.format(action))
+ usage = "\nCommands: {0}".format(', '.join(cmdlist))
parser = argparse.ArgumentParser(
- usage="%(prog)s {0} [options]".format(action))
+ usage="%(prog)s [global options] COMMAND [options]" + usage,
+ prog="pkgdb-cli")
+ # General connection options
+ parser.add_argument('--user', dest="username",
+ help="FAS username")
+ parser.add_argument('--password', dest="password",
+ help="FAS password (if not provided, will be asked " \
+ "later)")
+ parser.add_argument('--nocolor', action='store_true',
+ help="Removes color from output")
+ parser.add_argument('--verbose', action='store_true',
+ help="Gives more info about what's going on")
+ parser.add_argument('--debug', action='store_true',
+ help="Outputs bunches of debugging info")
+ parser.add_argument('--test', action='store_true',
+ help="Uses a test instance instead of the real pkgdb.")
+ parser.add_argument('--version', action='version',
+ version='pkgdb-cli %s' % (version))
- if action == 'acl':
- parser.add_argument('package', help="Name of the package to query")
- parser.add_argument('branch', default='devel', nargs="?",
+ subparsers = parser.add_subparsers(title='actions')
+
+ ## ACL
+ parser_acl = subparsers.add_parser('acl',
+ help='Request acl for a given package')
+ parser_acl.add_argument('package', help="Name of the package to query")
+ parser_acl.add_argument('branch', default='devel', nargs="?",
help="Branch of the package to query (default: 'devel', can be: 'all')")
- parser.add_argument('--pending', action="store_true", default=False,
+ parser_acl.add_argument('--pending', action="store_true", default=False,
help="Display only ACL awaiting review")
- parser.add_argument('--noextra', action="store_false", default=True,
+ parser_acl.add_argument('--noextra', action="store_false", default=True,
help="Do not display extra information (number of " \
"bugs opened and last build)")
-
- elif action == 'list':
- parser.add_argument('--all', action="store_true", default=False,
- dest='all', help="Query all the package in the collection"
- "This may take a while.")
- parser.add_argument('--nameonly', action="store_true", default=False,
- dest='name_only',
- help="Returns only the name of the package (without the description)")
- parser.add_argument('--orphaned', action="store_true", default=False,
- dest='orphaned', help="List all orphaned packages")
- parser.add_argument('--eol', action="store_true", default=False,
- dest='eol',
- help="List all orphaned and eol'd packages")
- parser.add_argument('--user', dest='username', default=False,
- help="List all the packages of the user <user>")
- parser.add_argument('--branch', dest='branch', default="all",
- help="Specify a branch (default:'all')")
- parser.add_argument('pattern', default=None, nargs="?",
- help="Pattern to query")
-
- elif action == 'orphan':
- if "--all" in last_args:
- parser.add_argument('--package')
- parser.add_argument('--branch')
- parser.add_argument('--retire', action="store_true", default=False,
- help="Retire the given package")
- parser.add_argument('--all', action="store_true", default=False,
- help="Orphan all your packages")
- else:
- parser.add_argument('package',
- help="Name of the package to orphan or " \
- "simple pattern")
- parser.add_argument('branch', default='devel', nargs="?",
- help="Branch of the package to orphan " \
- "(default: 'devel', can be: 'all')")
- parser.add_argument('--retire', action="store_true", default=False,
- help="Retire the given package")
- parser.add_argument('--all', action="store_true", default=False,
- help="Orphan all your packages")
-
- elif action == 'unorphan':
- parser.add_argument('package',
+ parser_acl.set_defaults(func=do_acl)
+
+ ## List
+ parser_list = subparsers.add_parser('list',
+ help='List package according to the specified criteria')
+ parser_list.add_argument('--all', action="store_true",
+ default=False, dest='all',
+ help="Query all the package in the collection. "
+ "This may take a while.")
+ parser_list.add_argument('--nameonly', action="store_true",
+ default=False, dest='name_only',
+ help="Returns only the name of the package (without the description)")
+ parser_list.add_argument('--orphaned', action="store_true",
+ default=False, dest='orphaned',
+ help="List all orphaned packages")
+ parser_list.add_argument('--eol', action="store_true",
+ default=False, dest='eol',
+ help="List all orphaned and eol'd packages")
+ parser_list.add_argument('--user', dest='username', default=False,
+ help="List all the packages of the user <user>")
+ parser_list.add_argument('--branch', dest='branch', default="all",
+ help="Specify a branch (default:'all')")
+ parser_list.add_argument('pattern', default=None, nargs="?",
+ help="Pattern to query")
+ parser_list.set_defaults(func=do_list)
+
+ ## Orphan
+ parser_orphan = subparsers.add_parser('orphan',
+ help='Orphan package(s) according to the specified criteria')
+ parser_orphan.add_argument('package',
+ help="Name of the package to orphan or " \
+ "simple pattern")
+ parser_orphan.add_argument('branch', default='devel', nargs="?",
+ help="Branch of the package to orphan " \
+ "(default: 'devel', can be: 'all')")
+ parser_orphan.add_argument('--retire', action="store_true", default=False,
+ help="Retire the given package")
+ parser_orphan.add_argument('--all', action="store_true", default=False,
+ help="Orphan all your packages")
+ parser_orphan.set_defaults(func=do_orphan)
+
+ ## Unorphan
+ parser_unorphan = subparsers.add_parser('unorphan',
+ help='Unorphan package(s) according to the specified criteria')
+ parser_unorphan.add_argument('package',
help="Name of the package to unorphan")
- parser.add_argument('branch', default='devel', nargs="?",
+ parser_unorphan.add_argument('branch', default='devel', nargs="?",
help="Branch of the package to unorphan " \
"(default: 'devel', can be: 'all')")
- parser.add_argument('--owner', default=None,
+ parser_unorphan.add_argument('--owner', default=None,
help="FAS username of the owner of the package " \
"This allows to give your package or an orphaned " \
"package to someone else. " \
"(default: current FAS user)")
+ parser_unorphan.set_defaults(func=do_unorphan)
- elif action == "request":
- parser.add_argument('--cancel', action="store_true", default=False,
+ ## Request
+ parser_request = subparsers.add_parser('request',
+ help='Request ACLs on package(s) according to the specified criteria')
+ parser_request.add_argument('--cancel', action="store_true", default=False,
help="Obsolete an ACL request")
- parser.add_argument('package', help="Name of the package")
- parser.add_argument("action",
+ parser_request.add_argument('package', help="Name of the package")
+ parser_request.add_argument("action",
help="Request (or obsolete a request) for specific ACL on this package " \
"(actions are '{0}', 'all')".format(
"', '".join(actionlist)))
- parser.add_argument('branch', default='devel', nargs="?",
+ parser_request.add_argument('branch', default='devel', nargs="?",
help="Branch of the package for which the ACL is " \
"requested (default: 'devel', can be: 'all')")
+ parser_request.set_defaults(func=do_request)
- elif action == "update":
- parser.add_argument('package', help="Name of the package")
- parser.add_argument("action",
+ ## Update
+ parser_update = subparsers.add_parser('update',
+ help='Update ACLs on package(s) as desired')
+ parser_update.add_argument('package', help="Name of the package")
+ parser_update.add_argument("action",
help="Request a specific ACL for this package " \
"(actions are: '{0}', 'all')".format(
"', '".join(actionlist)))
- parser.add_argument('user',
+ parser_update.add_argument('user',
help="FAS username of the person who requested ACL " \
"on this package")
- parser.add_argument('branch', default='devel', nargs="?",
+ parser_update.add_argument('branch', default='devel', nargs="?",
help="Branch of the package for which the ACL is " \
"requested (default: 'devel', can be: 'all')")
- parser.add_argument('--approve', action="store_true", default=False,
+ parser_update.add_argument('--approve', action="store_true", default=False,
help="Approve the requested ACL")
- parser.add_argument('--deny', action="store_true", default=False,
+ parser_update.add_argument('--deny', action="store_true", default=False,
help="Deny the requested ACL")
+ parser_update.set_defaults(func=do_update)
+
return parser
-def setup_parser():
+def do_acl(args):
+ """ Propagate the arguments to handle the ACL correctly.
"""
- Set the main arguments.
+ log.info("package : {0}".format(args.package))
+ log.info("branch : {0}".format(args.branch))
+ #log.info("approve : {0}".format(args.approve))
+ get_package_info(args.package, branch=args.branch,
+ pending=args.pending, extra=args.noextra)
+
+
+def do_list(args):
+ """ Propagate the arguments to handle list correctly.
"""
- usage = "\nCommands: {0}".format(', '.join(cmdlist))
- parser = argparse.ArgumentParser(
- usage="%(prog)s [global options] COMMAND [options]" + usage,
- prog="pkgdb-cli")
- # General connection options
- parser.add_argument('command', help='The type of action you '
- 'would like to perform. Action must be one of %s. '
- 'Run pkgdb-cli <action> -h to get the help of this '
- 'specific action.' %
- ', '.join(cmdlist))
- parser.add_argument('argument', nargs=argparse.REMAINDER)
- parser.add_argument('--user', dest="username",
- help="FAS username")
- parser.add_argument('--password', dest="password",
- help="FAS password (if not provided, will be asked " \
- "later)")
- parser.add_argument('--nocolor', action='store_true',
- help="Removes color from output")
- parser.add_argument('--verbose', action='store_true',
- help="Gives more info about what's going on")
- parser.add_argument('--debug', action='store_true',
- help="Outputs bunches of debugging info")
- parser.add_argument('--test', action='store_true',
- help="Uses a test instance instead of the real pkgdb.")
- parser.add_argument('--version', action='version',
- version='pkgdb-cli %s' % (version))
- return parser
+ log.info("pattern : {0}".format(args.pattern))
+ log.info("all : {0}".format(args.all))
+ log.info("orphaned : {0}".format(args.orphaned))
+ log.info("user : {0}".format(args.username))
+ log.info("name only: {0}".format(args.name_only))
+ log.info("branch : {0}".format(args.branch))
+ if(args.all is not None and args.all):
+ log.info(args)
+ get_packages(None, branch=args.branch)
+ elif (args.orphaned is not None and args.orphaned):
+ get_orphaned_packages(args.pattern, eol=args.eol,
+ name_only=args.name_only,
+ branch=args.branch)
+ elif (args.username is not None and args.username):
+ get_packager_info(args.username, motif=args.pattern,
+ name_only=args.name_only,
+ branch=args.branch)
+ elif (args.pattern is not None):
+ get_packages(args.pattern, name_only=args.name_only,
+ branch=args.branch)
+ else:
+ raise argparse.ArgumentTypeError(
+ "Not enough argument given")
+
+
+def do_orphan(args):
+
+ log.info("user : {0}".format(arg.username))
+ log.info("package : {0}".format(args.package))
+ log.info("branch : {0}".format(args.branch))
+ #log.info("pattern : {0}".format(args.pattern))
+ log.info("all : {0}".format(args.all))
+ log.info("retire : {0}".format(args.retire))
+ orphan_package(args.package, args.branch, args.all,
+ arg.username, arg.password)
+ if args.retire is True:
+ retire_package(args.package, args.branch,
+ arg.username, arg.password)
+
+
+def do_unorphan(args):
+ log.info("user : {0}".format(arg.username))
+ log.info("package : {0}".format(args.package))
+ log.info("branch : {0}".format(args.branch))
+ log.info("owner : {0}".format(args.owner))
+ unorphan_package(args.package, args.branch, args.owner,
+ arg.username, arg.password,)
+
+
+def do_request(args):
+
+ log.info("user : {0}".format(arg.username))
+ log.info("package : {0}".format(args.package))
+ log.info("branch : {0}".format(args.branch))
+ log.info("acl : {0}".format(args.action))
+ log.info("cancel : {0}".format(args.cancel))
+ handle_acl(args.package, action=args.action,
+ branch=args.branch, cancel=args.cancel,
+ username=arg.username, password=arg.password)
+
+
+def do_update(args):
+
+ log.info("user : {0}".format(arg.username))
+ log.info("package : {0}".format(args.package))
+ log.info("acl : {0}".format(args.action))
+ log.info("requester : {0}".format(args.user))
+ log.info("branch : {0}".format(args.branch))
+ log.info("approve : {0}".format(args.approve))
+ log.info("deny : {0}".format(args.deny))
+ answer = "Denied"
+ if args.approve:
+ answer = "Approved"
+ answer_acl_request(args.package, args.action, args.user,
+ answer, args.branch, arg.username, arg.password)
+
+
+def do_branch(args):
+
+ log.info("List all active branches")
+ branches = _get_active_branches()
+ branches.sort()
+ branches.reverse()
+ print "The active branches are: '{0}'".format("', '".join(branches))
def main():
@@ -1077,99 +1172,8 @@ def main():
parser = setup_parser()
# Parse the commandline
arg = parser.parse_args()
- # Get our action from these args
- if arg.command in cmdlist:
- action = arg.command
- else:
- raise argparse.ArgumentTypeError(
- "command must be one of: {0}".format(','.join(cmdlist)))
- # Parse action-specific args
- action_parser = setup_action_parser(action, arg.argument)
- log.info("*** {0}".format(", ".join(arg.argument)))
- args = action_parser.parse_args(arg.argument)
- if action == "acl":
- log.info("package : {0}".format(args.package))
- log.info("branch : {0}".format(args.branch))
- #log.info("approve : {0}".format(args.approve))
- get_package_info(args.package, branch=args.branch,
- pending=args.pending, extra=args.noextra)
-
- elif action == "list":
- log.info("pattern : {0}".format(args.pattern))
- log.info("all : {0}".format(args.all))
- log.info("orphaned : {0}".format(args.orphaned))
- log.info("user : {0}".format(args.username))
- log.info("name only: {0}".format(args.name_only))
- log.info("branch : {0}".format(args.branch))
- if(args.all is not None and args.all):
- log.info(args)
- get_packages(None, branch=args.branch)
- elif (args.orphaned is not None and args.orphaned):
- get_orphaned_packages(args.pattern, eol=args.eol,
- name_only=args.name_only,
- branch=args.branch)
- elif (args.username is not None and args.username):
- get_packager_info(args.username, motif=args.pattern,
- name_only=args.name_only,
- branch=args.branch)
- elif (args.pattern is not None):
- get_packages(args.pattern, name_only=args.name_only,
- branch=args.branch)
- else:
- raise argparse.ArgumentTypeError(
- "Not enough argument given")
-
- elif action == "orphan":
- log.info("user : {0}".format(arg.username))
- log.info("package : {0}".format(args.package))
- log.info("branch : {0}".format(args.branch))
- #log.info("pattern : {0}".format(args.pattern))
- log.info("all : {0}".format(args.all))
- log.info("retire : {0}".format(args.retire))
- orphan_package(args.package, args.branch, args.all,
- arg.username, arg.password)
- if args.retire is True:
- retire_package(args.package, args.branch,
- arg.username, arg.password)
-
- elif action == "unorphan":
- log.info("user : {0}".format(arg.username))
- log.info("package : {0}".format(args.package))
- log.info("branch : {0}".format(args.branch))
- log.info("owner : {0}".format(args.owner))
- unorphan_package(args.package, args.branch, args.owner,
- arg.username, arg.password,)
-
- elif action == "request":
- log.info("user : {0}".format(arg.username))
- log.info("package : {0}".format(args.package))
- log.info("branch : {0}".format(args.branch))
- log.info("acl : {0}".format(args.action))
- log.info("cancel : {0}".format(args.cancel))
- handle_acl(args.package, action=args.action,
- branch=args.branch, cancel=args.cancel,
- username=arg.username, password=arg.password)
-
- elif action == "update":
- log.info("user : {0}".format(arg.username))
- log.info("package : {0}".format(args.package))
- log.info("acl : {0}".format(args.action))
- log.info("requester : {0}".format(args.user))
- log.info("branch : {0}".format(args.branch))
- log.info("approve : {0}".format(args.approve))
- log.info("deny : {0}".format(args.deny))
- answer = "Denied"
- if args.approve:
- answer = "Approved"
- answer_acl_request(args.package, args.action, args.user,
- answer, args.branch, arg.username, arg.password)
-
- elif action == "branches":
- log.info("List all active branches")
- branches = _get_active_branches()
- branches.sort()
- branches.reverse()
- print "The active branches are: '{0}'".format("', '".join(branches))
+ arg.func(arg)
+
if __name__ == '__main__':
11 years, 2 months
[packagedb-cli] Add a help message on the command
by Pierre-YvesChibon
commit ea908cfadca0b2e351a49d734880feca91486054
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Sun Feb 17 14:46:37 2013 +0100
Add a help message on the command
This message provides more information on the different type of command available
and how to get more information on how to run them.
pkgdb-cli | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/pkgdb-cli b/pkgdb-cli
index 54783b3..0005452 100755
--- a/pkgdb-cli
+++ b/pkgdb-cli
@@ -1047,7 +1047,11 @@ def setup_parser():
usage="%(prog)s [global options] COMMAND [options]" + usage,
prog="pkgdb-cli")
# General connection options
- parser.add_argument('command')
+ parser.add_argument('command', help='The type of action you '
+ 'would like to perform. Action must be one of %s. '
+ 'Run pkgdb-cli <action> -h to get the help of this '
+ 'specific action.' %
+ ', '.join(cmdlist))
parser.add_argument('argument', nargs=argparse.REMAINDER)
parser.add_argument('--user', dest="username",
help="FAS username")
11 years, 2 months