From f36fffa3888112cf45e21c8b17e8c15cd6d2bce9 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Fri, 23 Mar 2007 14:43:24 +0000 Subject: [PATCH] [DELTA] add createdelta script. --- scripts/createdelta.py | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/createdelta.py diff --git a/scripts/createdelta.py b/scripts/createdelta.py new file mode 100644 index 00000000..cfe00c96 --- /dev/null +++ b/scripts/createdelta.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2005, 2006 TUBITAK/UEKAE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Please read the COPYING file. + +import os +import glob +import pisi +import pisi.util as util +from pisi.version import Version +from pisi.delta import create_delta_package + +def minsandmaxes(): + + packages = map(lambda x: os.path.basename(x).split(".pisi")[0], set(glob.glob("*.pisi")) - set(glob.glob("*.delta.pisi"))) + + versions = {} + for file in packages: + name, version = util.parse_package_name(file) + versions.setdefault(name, []).append(Version(version)) + + mins = {} + maxs = {} + for pkg in versions.keys(): + mins[pkg] = min(versions[pkg]) + maxs[pkg] = max(versions[pkg]) + + return mins, maxs + +if __name__ == "__main__": + + pisi.api.init(write=False) + + mi, ma = minsandmaxes() + for pkg in mi.keys(): + old_pkg = "%s-%s.pisi" % (pkg, str(mi[pkg])) + new_pkg = "%s-%s.pisi" % (pkg, str(ma[pkg])) + name, version = util.parse_package_name(pkg) + + if not old_pkg == new_pkg: + # skip if same + if not os.path.exists("%s-%s-%s.delta.pisi" % (name, str(mi[pkg].build), str(ma[pkg].build))): + # skip if delta exists + print "%s --> Min: %s Max: %s \n %s-%s-%s.delta.pisi" % (pkg, old_pkg, new_pkg, name, str(mi[pkg].build), str(ma[pkg].build)) + create_delta_package(old_pkg, new_pkg)