summaryrefslogtreecommitdiffstats
path: root/mgagnome
diff options
context:
space:
mode:
authorOlav Vitters <ovitters@mageia.org>2012-03-15 14:02:03 +0000
committerOlav Vitters <ovitters@mageia.org>2012-03-15 14:02:03 +0000
commita6edc6400d6c37553a3ffbbd989577e088727477 (patch)
treecb2a5f9d396231a1d494285979799a8328858be0 /mgagnome
parent470596f4d560788d0a13e899deb030269f77124c (diff)
downloadmgagnome-a6edc6400d6c37553a3ffbbd989577e088727477.tar
mgagnome-a6edc6400d6c37553a3ffbbd989577e088727477.tar.gz
mgagnome-a6edc6400d6c37553a3ffbbd989577e088727477.tar.bz2
mgagnome-a6edc6400d6c37553a3ffbbd989577e088727477.tar.xz
mgagnome-a6edc6400d6c37553a3ffbbd989577e088727477.zip
allow packages subcommand to show versions and to limit packages to the ones with different versions
Diffstat (limited to 'mgagnome')
-rwxr-xr-xmgagnome42
1 files changed, 29 insertions, 13 deletions
diff --git a/mgagnome b/mgagnome
index 1600a03..8bd27a1 100755
--- a/mgagnome
+++ b/mgagnome
@@ -520,29 +520,41 @@ def write_file(path, data):
os.rename(fdst.name, path)
def cmd_co(options, parser):
- upstream = get_upstream_names()
- downstream, downstream_files = get_downstream_names()
+ root = os.path.expanduser(PKGROOT)
- cwd = os.path.expanduser(PKGROOT)
+ for package, module, package_version, spec_version in sorted(join_streams()):
+ print "%s => %s" % (module, package)
+ subprocess.call(['mgarepo', 'co', package], cwd=root)
- matches = upstream & set(downstream.keys())
- for module in matches:
- print module, "\t".join(downstream[module].keys())
- for package in downstream[module].keys():
- subprocess.call(['mgarepo', 'co', package], cwd=cwd)
+def join_streams(show_version=False, only_diff_version=False):
+ root = os.path.expanduser(PKGROOT)
-def join_streams():
upstream = get_upstream_names()
downstream, downstream_files = get_downstream_names()
matches = upstream & set(downstream.keys())
for module in matches:
for package in downstream[module].keys():
- yield (package, module)
+ package_version = downstream[module][package]
+ spec_version = None
+ if show_version or only_diff_version:
+ cwd = os.path.join(root, package)
+ try:
+ spec_version = SpecFile(os.path.join(cwd, "SPECS", "%s.spec" % package)).version
+ except subprocess.CalledProcessError:
+ spec_version = 'N/A'
+
+ if only_diff_version and package_version == spec_version:
+ continue
+
+ yield (package, module, package_version, spec_version)
def cmd_ls(options, parser):
- for package, module in sorted(join_streams()):
- print "\t".join((package, module)) if options.upstream else package
+ for package, module, package_version, spec_version in sorted(join_streams(show_version=options.show_version, only_diff_version=options.diff)):
+ print package,"\t",
+ if options.upstream: print module, "\t",
+ if options.show_version: print spec_version, "\t", package_version, "\t",
+ print
def cmd_patches(options, parser):
upstream = get_upstream_names()
@@ -706,8 +718,12 @@ def main():
subparser = subparsers.add_parser('packages', help='list all GNOME packages')
subparser.add_argument("-m", "--m", action="store_true", dest="upstream",
help="Show upstream module")
+ subparser.add_argument( "--version", action="store_true", dest="show_version",
+ help="Show version numbers")
+ subparser.add_argument( "--diff", action="store_true", dest="diff",
+ help="Only show packages with different version")
subparser.set_defaults(
- func=cmd_ls, upstream=False
+ func=cmd_ls, upstream=False, show_version=False, diff=False
)
subparser = subparsers.add_parser('patches', help='list all GNOME patches')