]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - wwwbin/clean-dups-old.py
Switch to Python 3 for rpm.org rpm
[projects/pld-ftp-admin.git] / wwwbin / clean-dups-old.py
CommitLineData
a1e62e44 1#!/usr/bin/python3
ed1ec331
ER
2# arekm, 2008
3# remove
4
94960bbc
JR
5from __future__ import print_function
6
ed1ec331
ER
7import os
8import re
9import time
10import rpm
11import sys
12
13re_info = re.compile(r'.*\.info$')
14re_nvr = re.compile('^(.*)-([^-]*)-([^-]*)\.info$')
15dir = '/home/pld/admins/th/ftp/test/SRPMS/.metadata'
16
17def compare(f1, f2):
18 m1 = re_nvr.match(f1)
19 n1 = m1.group(1)
20 v1 = m1.group(2)
21 r1 = m1.group(3)
22
23 m2 = re_nvr.match(f2)
24 n2 = m2.group(1)
25 v2 = m2.group(2)
26 r2 = m2.group(3)
27
6fb44dac
JR
28 try:
29 l1 = rpm.labelCompare((n1, v1, r1), (n2, v2, r2))
30 except ValueError:
31 l1 = -1
32 try:
33 l2 = rpm.labelCompare((n2, v2, r2), (n1, v1, r1))
34 except ValueError:
35 l2 = -1
ed1ec331
ER
36
37 if l1 > 0 and l2 > 0:
38 return 0
39
40 return -l1
41
42
43def find_old(files):
44 return sorted(files, compare)
45
46files = {}
47dupes = {}
48
49for file in os.listdir(dir):
50 if not re_info.match(file):
51 continue
52
53 m = re_nvr.match(file)
54 if not m:
94960bbc 55 print("problem with: %s" % file)
ed1ec331
ER
56 sys.exit(1)
57
58 if len(sys.argv) == 0:
59 p = os.path.join(dir, file)
60 mtime = os.stat(p).st_mtime
61 if mtime > time.time() - 3*86400:
62 continue
63
64 name = m.group(1)
65
66 if files.has_key(name):
67 if dupes.has_key(name):
68 dupes[name].append(file)
69 else:
70 dupes[name] = [ files[name] ]
71 dupes[name].append(file)
72 else:
73 files[name] = file
74
94960bbc 75for i in iter(dupes.keys()):
ed1ec331
ER
76 for old in find_old(dupes[i])[1:]:
77 os.system("/home/pld/admins/th/pld-ftp-admin/scripts/remove.py test %s" % old)
This page took 1.52585 seconds and 4 git commands to generate.