#!/usr/bin/env python # vi: encoding=utf-8 ts=8 sts=4 sw=4 et import sys, os sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules') from common import checkdir from config import ftp_dir,all_ftp_archs import config import ftpio if len(sys.argv) < 2: print "ERR: not enough parameters given" print "gen-indexes.py tree [tree2...]" sys.exit(1) trees=sys.argv[1:] for tree in trees: checkdir(tree) ftpio.connect('gen-indexes') locked=[] for tree in trees: if ftpio.lock(tree, True): locked.append(tree) else: print "ERR: %s tree already locked" % tree for i in locked: ftpio.unlock(i) sys.exit(1) home=os.environ['HOME'] os.umask(022) for tree in trees: print '-------------------------- %s --------------------------' % tree for arch in all_ftp_archs: print 'ARCHITECTURE: %s' % arch if config.old_poldek: os.system('%s.stat/bin/poldek --cachedir=%s/tmp/poldek -c %s.stat/etc/poldek.conf -s %s%s/%s/RPMS/ --mkidxz' % (ftp_dir,home,ftp_dir,ftp_dir,tree,arch)) else: if config.poldek_indexes != "old": os.system('%s.stat/bin/poldek-new --cachedir=%s/tmp/poldek --conf %s.stat/etc/poldek.conf -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pndir' % (ftp_dir,home,ftp_dir,ftp_dir,tree,arch)) if config.poldek_indexes != "new": os.system('%s.stat/bin/poldek-new --cachedir=%s/tmp/poldek --conf %s.stat/etc/poldek.conf -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pdir' % (ftp_dir,home,ftp_dir,ftp_dir,tree,arch)) # Creating indexes for yum and other supporting xml repodata. os.system('%s.stat/bin/createrepo --cache %s/tmp/createrepo %s%s/%s/RPMS' % (ftp_dir,home,ftp_dir,tree,arch)) for tree in trees: ftpio.unlock(tree)