summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Rękorajski2019-01-04 13:45:29 (GMT)
committerJan Rękorajski2019-01-04 13:45:29 (GMT)
commit6148027dbca2ccf255fcd39e72fc11b18bd25570 (patch)
treedbb21cd7f20334c30b55d05c44b2122c94c49827
parente55cd5aea56f595a77692e52b6bcca5dbffe28e2 (diff)
downloadpld-ftp-admin-6148027dbca2ccf255fcd39e72fc11b18bd25570.zip
pld-ftp-admin-6148027dbca2ccf255fcd39e72fc11b18bd25570.tar.gz
Tabs to spaces
-rwxr-xr-xwwwbin/ftp-freshness.py248
1 files changed, 124 insertions, 124 deletions
diff --git a/wwwbin/ftp-freshness.py b/wwwbin/ftp-freshness.py
index 63b7a94..51959ee 100755
--- a/wwwbin/ftp-freshness.py
+++ b/wwwbin/ftp-freshness.py
@@ -10,8 +10,8 @@ import sys
# 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/" ]
+ "/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"
@@ -26,132 +26,132 @@ p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=
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$')
- rpm.addMacro('patch', '%{nil}')
- rpm.addMacro('requires_eq', '#')
- rpm.addMacro('requires_eq_to', '#')
- rpm.addMacro('requires_releq', '#')
- rpm.addMacro('requires_ge', '#')
- rpm.addMacro('requires_ge_to', '#')
- self.ts = rpm.ts()
-
- def __clean_macros(self):
- for macro in ['rel', '_rel', 'snap', '_snap', 'rc', '_rc', 'subver', 'githash']:
- rpm.delMacro(macro)
- macros = rpm.getMacros()
- for macro in macros.iterkeys():
- if macro.startswith('with_') or macro.startswith('without_'):
- rpm.delMacro(macro.split()[0])
-
- 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):
- spec = os.path.join(specsdir, name + '.spec')
- if not os.path.isfile(spec):
- print >>sys.stderr, 'Spec file does not exist: %s' % spec
- return ('','','')
- print >>sys.stderr, 'Processing: %s.spec' % name
- self.__clean_macros()
- try:
- s = self.ts.parseSpec(spec)
- headers = s.headers()
- name, version, release = headers[0].sprintf('%{name};%{version};%{release}').split(';')
- release = release.partition('@')[0]
- return (name, version, release)
- except rpm.error:
- print >>sys.stderr, 'Failed to parse: %s.spec' % name
- return ('','','')
-
- 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):
- ver_int = "*** VERSION-RELEASE COMPARE FOR THE SAME VERSIONS ONLY ***\n"
- ver_frac = "*** PACKAGES WITH FRACTIONAL RELEASE ***\n"
- for name in self.cvs_new_nvr:
- self.cvs_new_nvr.sort()
- cvs_nvr = self.cvs[name]
- pkg_nvr = self.pkg[name]
- msg = "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%\ns" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
- if '.' in cvs_nvr[2]:
- ver_frac += msg
- else:
- ver_int += msg
- print ver_int
- print ver_frac
-
- def print_nv(self):
- ver_int = "*** VERSION COMPARE ONLY ***\n"
- ver_frac = "*** PACKAGES WITH FRACTIONAL RELEASE ***\n"
- self.cvs_new_nv.sort()
- for name in self.cvs_new_nv:
- cvs_nvr = self.cvs[name]
- pkg_nvr = self.pkg[name]
- msg = "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%s\n" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
- if '.' in cvs_nvr[2]:
- ver_frac += msg
- else:
- ver_int += msg
- print ver_int
- print ver_frac
+ def __init__(self):
+ self.pkg = {}
+ self.cvs = {}
+ self.cvs_new_nvr = []
+ self.cvs_new_nv = []
+ self.re_n = re.compile('^(.*)-([^-]*)-([^-]*)\.src\.rpm$')
+ rpm.addMacro('patch', '%{nil}')
+ rpm.addMacro('requires_eq', '#')
+ rpm.addMacro('requires_eq_to', '#')
+ rpm.addMacro('requires_releq', '#')
+ rpm.addMacro('requires_ge', '#')
+ rpm.addMacro('requires_ge_to', '#')
+ self.ts = rpm.ts()
+
+ def __clean_macros(self):
+ for macro in ['rel', '_rel', 'snap', '_snap', 'rc', '_rc', 'subver', 'githash']:
+ rpm.delMacro(macro)
+ macros = rpm.getMacros()
+ for macro in macros.iterkeys():
+ if macro.startswith('with_') or macro.startswith('without_'):
+ rpm.delMacro(macro.split()[0])
+
+ 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):
+ spec = os.path.join(specsdir, name + '.spec')
+ if not os.path.isfile(spec):
+ print >>sys.stderr, 'Spec file does not exist: %s' % spec
+ return ('','','')
+ print >>sys.stderr, 'Processing: %s.spec' % name
+ self.__clean_macros()
+ try:
+ s = self.ts.parseSpec(spec)
+ headers = s.headers()
+ name, version, release = headers[0].sprintf('%{name};%{version};%{release}').split(';')
+ release = release.partition('@')[0]
+ return (name, version, release)
+ except rpm.error:
+ print >>sys.stderr, 'Failed to parse: %s.spec' % name
+ return ('','','')
+
+ 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):
+ ver_int = "*** VERSION-RELEASE COMPARE FOR THE SAME VERSIONS ONLY ***\n"
+ ver_frac = "*** PACKAGES WITH FRACTIONAL RELEASE ***\n"
+ for name in self.cvs_new_nvr:
+ self.cvs_new_nvr.sort()
+ cvs_nvr = self.cvs[name]
+ pkg_nvr = self.pkg[name]
+ msg = "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%\ns" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
+ if '.' in cvs_nvr[2]:
+ ver_frac += msg
+ else:
+ ver_int += msg
+ print ver_int
+ print ver_frac
+
+ def print_nv(self):
+ ver_int = "*** VERSION COMPARE ONLY ***\n"
+ ver_frac = "*** PACKAGES WITH FRACTIONAL RELEASE ***\n"
+ self.cvs_new_nv.sort()
+ for name in self.cvs_new_nv:
+ cvs_nvr = self.cvs[name]
+ pkg_nvr = self.pkg[name]
+ msg = "GIT: [%s.spec] %s-%s-%s vs FTP: %s-%s-%s\n" % (name, cvs_nvr[0], cvs_nvr[1], cvs_nvr[2], pkg_nvr[0], pkg_nvr[1], pkg_nvr[2])
+ if '.' in cvs_nvr[2]:
+ ver_frac += msg
+ else:
+ ver_int += msg
+ print ver_int
+ print ver_frac
p = Pkgs()
for d in dirs:
- for rpm_file_name in os.listdir(d):
- p.add_rpm(rpm_file_name)
+ for rpm_file_name in os.listdir(d):
+ p.add_rpm(rpm_file_name)
p.prepare()