X-Git-Url: https://git.tld-linux.org/?p=TLD.git;a=blobdiff_plain;f=pld-builder.new%2FPLD_Builder%2Fmaintainer.py;fp=pld-builder.new%2FPLD_Builder%2Fmaintainer.py;h=0ef66083efa64f8a96c2ab1c64e2e97778732080;hp=0000000000000000000000000000000000000000;hb=90809c8fec988489786ce00247d9a4150070748b;hpb=ab3934fab858112cd552359b18cb980ea07c310b diff --git a/pld-builder.new/PLD_Builder/maintainer.py b/pld-builder.new/PLD_Builder/maintainer.py new file mode 100644 index 0000000..0ef6608 --- /dev/null +++ b/pld-builder.new/PLD_Builder/maintainer.py @@ -0,0 +1,80 @@ +# 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() +