diff options
author | Olav Vitters <ovitters@mageia.org> | 2012-03-15 14:02:03 +0000 |
---|---|---|
committer | Olav Vitters <ovitters@mageia.org> | 2012-03-15 14:02:03 +0000 |
commit | a6edc6400d6c37553a3ffbbd989577e088727477 (patch) | |
tree | cb2a5f9d396231a1d494285979799a8328858be0 /mgagnome | |
parent | 470596f4d560788d0a13e899deb030269f77124c (diff) | |
download | mgagnome-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-x | mgagnome | 42 |
1 files changed, 29 insertions, 13 deletions
@@ -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') |