From c7079495157381feae3871ca88ef8fd4fb01b7bb Mon Sep 17 00:00:00 2001 From: Olav Vitters Date: Tue, 16 Oct 2012 07:57:27 +0000 Subject: - revert changed if tarball cannot be downloaded - better comparison vs upstream - allow multiple media --- mgagnome | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'mgagnome') diff --git a/mgagnome b/mgagnome index 0fd0213..63c4b26 100755 --- a/mgagnome +++ b/mgagnome @@ -305,6 +305,10 @@ class SpecFile(object): with open(self.path, "rw") as f: data = f.read() + if data.count("%subrel") != 0: + print >>sys.stderr, "ERROR: %subrel found; don't know what to do!" + return False + if data.count("%mkrel") != 1: print >>sys.stderr, "ERROR: Multiple %mkrel found; don't know what to do!" return False @@ -342,8 +346,11 @@ class SpecFile(object): except subprocess.CalledProcessError, e: # mgarepo sync returns 1 if the tarball cannot be downloaded if e.returncode != 1: + subprocess.check_call(["svn", "revert", "-R", os.path.join(self.path, '..')]) return False else: + # failed to download tarball + subprocess.check_call(["svn", "revert", "-R", os.path.join(self.path, '..')]) return False @@ -568,7 +575,13 @@ class Downstream(object): if module not in TARBALLS: TARBALLS[module] = {} - TARBALLS[module][srpm] = version + + if srpm in TARBALLS[module]: + # srpm seen before, check if version is newer + if version_cmp(TARBALLS[module][srpm], version) == 1: + TARBALLS[module][srpm] = version + else: + TARBALLS[module][srpm] = version if srpm not in FILES: FILES[srpm] = set() @@ -684,6 +697,7 @@ def cmd_check_latest(options, parser): streams = join_streams(show_version=True) for package, module, package_version, spec_version, downstream_files in streams: + upgrade=set() sys.stdout.write(package) sys.stdout.write("\t%s\t%s" % (spec_version, package_version)) @@ -694,11 +708,24 @@ def cmd_check_latest(options, parser): latest_version = get_latest_version(versions) safe_version = get_latest_version(versions, safe_max_version) - if version_cmp(latest_version, spec_version) < 0: latest_version = 'N/A' - if version_cmp(safe_version, spec_version) < 0: safe_version = 'N/A' + cmp_latest = version_cmp(latest_version, spec_version) + if cmp_latest < 0: + latest_version = 'N/A' + upgrade.add('l') + elif cmp_latest > 0: + upgrade.add('L') + + cmp_safe = version_cmp(safe_version, spec_version) + if cmp_safe < 0: + safe_version = 'N/A' + upgrade.add('s') + elif cmp_safe > 0: + upgrade.add('S') sys.stdout.write("\t%s" % latest_version) sys.stdout.write("\t%s" % safe_version) + sys.stdout.write("\t%s" % "".join(sorted(upgrade))) + print def cmd_patches(options, parser): @@ -925,12 +952,14 @@ def main(): help="Package name reflects the upstream name") subparser.add_argument("-s", "--submit", action="store_true", dest="submit", help="Commit changes and submit") + subparser.add_argument( "--no-submit", action="store_false", dest="submit", + help="Do not commit changes and submit") subparser.add_argument("-a", "--algorithm", choices=hashlib.algorithms, dest="algo", help="Hash algorithm") subparser.add_argument("--hash", dest="hexdigest", help="Hexdigest of the hash") subparser.set_defaults( - func=cmd_package_new_version, submit=True, upstream=False, hexdigest=None, algo="sha256", + func=cmd_package_new_version, submit=argparse.SUPPRESS, upstream=False, hexdigest=None, algo="sha256", force=False ) @@ -954,9 +983,12 @@ def main(): if options.limit_upstream: Upstream.limit = set(options.limit_upstream.read().strip("\n").splitlines()) + if not hasattr(options, 'submit'): + options.submit = not options.distro + if options.distro: Downstream.PKGROOT = os.path.join('~/pkgs', options.distro) - Downstream.MEDIA = "Core Release %s Source" % options.distro + Downstream.MEDIA = "Core Release {0} Source,Core {0} Updates Source,Core {0} Updates Testing Source".format(options.distro) Downstream.DISTRO = options.distro try: -- cgit v1.2.1