]> TLD Linux GIT Repositories - tld-ftp-admin.git/blobdiff - wwwbin/ftp-freshness.py
- tldized
[tld-ftp-admin.git] / wwwbin / ftp-freshness.py
diff --git a/wwwbin/ftp-freshness.py b/wwwbin/ftp-freshness.py
deleted file mode 100755 (executable)
index aa27b37..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/python
-# arekm, 2007
-
-import os
-import re
-import struct
-import rpm
-import subprocess
-
-# earlier == more important
-dirs = [ "/home/ftp/pub/Linux/PLD/dists/th/test/SRPMS/RPMS/",
-                "/home/ftp/pub/Linux/PLD/dists/th/ready/SRPMS/RPMS/",
-                "/home/ftp/pub/Linux/PLD/dists/th/PLD/SRPMS/RPMS/" ]
-#dirs = [ "/home/pld/admins/th/1" ]
-specsdir = "/home/pld/admins/th/SPECS"
-
-if os.path.isdir(specsdir):
-    os.chdir(specsdir)
-    cmd = ['git', 'pull']
-else:
-    cmd = ['git', 'clone', '--depth=1', 'git://git.pld-linux.org/SPECS', specsdir]
-
-p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-(out, err) = p.communicate(None)
-
-
-os.chdir(specsdir)
-class Pkgs(object):
-       def __init__(self):
-               self.pkg = {}
-               self.cvs = {}
-               self.cvs_new_nvr = []
-               self.cvs_new_nv = []
-               self.re_n = re.compile('^(.*)-([^-]*)-([^-]*)\.src\.rpm$')
-
-       def __get_from_rpm(self, file_name):
-               m = self.re_n.match(file_name)
-               if not m:
-                       return False
-               name =  m.group(1).strip()
-               version = m.group(2).strip()
-               release = m.group(3).strip()
-               return (name, version, release)
-
-       def __get_from_cvs(self, name):
-               f = os.popen('rpm --specfile -q --queryformat "%{name}\n%{version}\n%{release}\n" ' + specsdir + '/' + name + '.spec 2> /dev/null', 'r')
-               name = f.readline().strip()
-               version = f.readline().strip()
-               release = f.readline().strip()
-               f.close()
-               return (name, version, release)
-
-       def __update_cvs(self, name):
-               if not self.cvs.has_key(name):
-                       self.cvs[name] = self.__get_from_cvs(name)
-
-       def __update_new(self, name):
-               cvs_nvr = self.cvs[name]
-               pkg_nvr = self.pkg[name]
-
-               cvs_rpm_vr = rpm.labelCompare((cvs_nvr[0], cvs_nvr[1], cvs_nvr[2]), (pkg_nvr[0], pkg_nvr[1], pkg_nvr[2]))
-               cvs_rpm_v = rpm.labelCompare((cvs_nvr[0], cvs_nvr[1], ""), (pkg_nvr[0], pkg_nvr[1], ""))
-               rpm_cvs_vr = rpm.labelCompare((pkg_nvr[0], pkg_nvr[1], pkg_nvr[2]), (cvs_nvr[0], cvs_nvr[1], cvs_nvr[2]))
-               rpm_cvs_v = rpm.labelCompare((pkg_nvr[0], pkg_nvr[1], ""), (cvs_nvr[0], cvs_nvr[1], ""))
-
-               if rpm_cvs_v < 0 and cvs_rpm_v > 0:
-                       self.cvs_new_nv.append(name)
-               else:
-                       if rpm_cvs_vr < 0 and cvs_rpm_vr > 0 and cvs_nvr[1] == pkg_nvr[1]:
-                               self.cvs_new_nvr.append(name)
-
-       def     prepare(self):
-               self.cvs_new_nvr.sort()
-               self.cvs_new_nvr = list(set(self.cvs_new_nvr))
-               self.cvs_new_nv.sort()
-               self.cvs_new_nv = list(set(self.cvs_new_nv))
-
-               pkgs = list(self.pkg) + list(self.cvs)
-
-               for name in list(set(pkgs)):
-                       self.__update_new(name)
-
-       def add_rpm(self, file_name):
-               nvr = self.__get_from_rpm(file_name)
-               if not nvr:
-                       return False
-               name = nvr[0]
-               if self.pkg.has_key(name):
-                       if rpm.labelCompare(nvr, self.pkg[name]) > 0:
-                               del self.pkg[name]
-                               self.pkg[name] = nvr
-               else:
-                       self.pkg[name] = nvr
-               self.__update_cvs(name)
-
-       def print_nvr(self):
-               print "*** VERSION-RELEASE COMPARE FOR THE SAME VERSIONS ONLY ***"
-               for name in self.cvs_new_nvr:
-                       self.cvs_new_nvr.sort()
-                       cvs_nvr = self.cvs[name]
-                       pkg_nvr = self.pkg[name]
-                       print "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%s" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
-
-       def print_nv(self):
-               print "*** VERSION COMPARE ONLY ***"
-               self.cvs_new_nv.sort()
-               for name in self.cvs_new_nv:
-                       cvs_nvr = self.cvs[name]
-                       pkg_nvr = self.pkg[name]
-                       print "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%s" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
-
-p = Pkgs()
-
-for d in dirs:
-       for rpm_file_name in os.listdir(d):
-               p.add_rpm(rpm_file_name)
-
-p.prepare()
-
-p.print_nv()
-print "\n\n"
-p.print_nvr()