createdelta.py 1.61 KB
Newer Older
1
#!/usr/bin/env python3
2 3 4 5 6 7 8 9 10 11 12 13 14
# -*- 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
15 16 17 18
import inary
import inary.util as util
from inary.version import Version
from inary.delta import create_delta_package
19 20 21

def minsandmaxes():

22
    packages = [os.path.basename(x).split(".inary")[0] for x in set(glob.glob("*.inary")) - set(glob.glob("*.delta.inary"))]
23 24 25 26 27 28 29 30

    versions = {}
    for file in packages:
        name, version = util.parse_package_name(file)
        versions.setdefault(name, []).append(Version(version))

    mins = {}
    maxs = {}
31
    for pkg in list(versions.keys()):
32 33 34 35 36 37 38 39
        mins[pkg] = min(versions[pkg])
        maxs[pkg] = max(versions[pkg])

    return mins, maxs

if __name__ == "__main__":

    mi, ma = minsandmaxes()
40 41 42
    for pkg in list(mi.keys()):
        old_pkg = "%s-%s.inary" % (pkg, str(mi[pkg]))
        new_pkg = "%s-%s.inary" % (pkg, str(ma[pkg]))
43 44 45 46
        name, version = util.parse_package_name(pkg)

        if not old_pkg == new_pkg:
        # skip if same 
47
            if not os.path.exists("%s-%s-%s.delta.inary" % (name, str(mi[pkg].build), str(ma[pkg].build))):
48
            # skip if delta exists
49
                print(("%s --> Min: %s Max: %s \n %s-%s-%s.delta.inary" % (pkg, old_pkg, new_pkg, name, str(mi[pkg].build), str(ma[pkg].build))))
50
                create_delta_package(old_pkg, new_pkg)