--- mga-gnome/trunk/mga-gnome 2012/03/15 13:11:43 3500 +++ mga-gnome/trunk/mga-gnome 2012/03/15 14:02:03 3501 @@ -520,29 +520,41 @@ 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 @@ 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')