--- /dev/null
+# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
+
+import os
+import sys
+import time
+import datetime
+
+from config import config, init_conf
+import util
+import chroot
+import ftp
+import path
+
+def clean_dir(path, max):
+ curtime=time.time()
+ for i in os.listdir(path):
+ if curtime - os.path.getmtime(path+'/'+i) > max:
+ if os.path.isdir(path+'/'+i):
+ util.clean_tmp(path+'/'+i)
+ else:
+ os.unlink(path+'/'+i)
+
+def send_rpmqa():
+ tmp = path.build_dir + '/' + util.uuid() + '/'
+ os.mkdir(tmp)
+ log = tmp + config.rpmqa_filename
+ open(log, 'a').write("Query done at: %s\n" % datetime.datetime.now().isoformat(' '))
+ chroot.run("rpm -qa|sort", logfile=log)
+ os.chmod(log,0644)
+ ftp.init(rpmqa=True)
+ ftp.add(log)
+ ftp.flush()
+ os.unlink(log)
+ os.rmdir(tmp)
+
+def handle_src():
+ send_rpmqa()
+ clean_dir(path.www_dir+'/srpms', 2592000) # a month
+
+def handle_bin():
+ send_rpmqa()
+ f=chroot.popen("""ls -l --time-style +%s /spools/ready""", 'root')
+ rmpkgs=[]
+ curtime=time.time()
+ for i in f:
+ if i[-4:-1]!='rpm':
+ continue
+ tmp=i.split()
+ mtime=int(tmp[5])
+ pkgname=tmp[6]
+ if curtime - mtime > config.max_keep_time:
+ rmpkgs.append(pkgname)
+
+ i=0
+ while rmpkgs[i:i+1000]:
+ chroot.run("cd /spools/ready; rm -f %s" % ' '.join(rmpkgs[i:i+1000]), 'root')
+ i=i+1000
+ f.close()
+ chroot.run("poldek --mo=nodiff --mkidxz -s /spools/ready")
+
+if __name__ == '__main__':
+ init_conf()
+ bb=config.binary_builders[:]
+ clean_dir(path.spool_dir+'/builds', 2592000) # a month
+ if config.src_builder:
+ try:
+ init_conf(config.src_builder)
+ except:
+ pass
+ else:
+ handle_src()
+ sys.exit(0)
+ for b in bb:
+ try:
+ init_conf(b)
+ except:
+ continue
+ else:
+ handle_bin()
+