2 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
6 sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
7 from common import checkdir
8 from config import ftp_dir,all_ftp_archs
13 opts, args = getopt.getopt(sys.argv[1:], None, ["nopoldek", "noyum", "norpmrepo", "poldek", "yum", "rpmrepo"])
14 except getopt.GetoptError:
15 print "ERR: not enough parameters given"
16 print "gen-indexes.py [--[no]poldek] [--[no]yum] [--[no]rpmrepo] tree [tree2...]"
28 if o == "--norpmrepo":
38 if not do_poldek and not do_yum and not do_rpmrepo:
39 print "ERR: speciy at least one action"
47 ftpio.connect('gen-indexes')
52 if ftpio.lock(tree, True):
55 print "ERR: %s tree already locked" % tree
60 home=os.environ['HOME']
67 print '-------------------------- %s --------------------------' % tree
68 for arch in all_ftp_archs:
69 print 'generate poldek index for %s' % arch
71 os.system('%s.stat/bin/poldek --cachedir=%s/tmp/poldek -c %s.stat/etc/poldek.conf -s %s%s/%s/RPMS/ --mkidxz' %
72 (ftp_dir,home,ftp_dir,ftp_dir,tree,arch))
74 if config.poldek_indexes != "old":
75 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' %
76 (ftp_dir,home,ftp_dir,ftp_dir,tree,arch))
77 if config.poldek_indexes != "new":
78 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' %
79 (ftp_dir,home,ftp_dir,ftp_dir,tree,arch))
82 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
84 print '-------------------------- %s --------------------------' % tree
85 for arch in all_ftp_archs:
86 print 'generate repodata for %s using createrepo' % arch
87 # Creating indexes for yum and other supporting xml repodata.
88 os.system('time %s.stat/bin/createrepo -d -g %s.stat/repodata/comps.xml --cache %s/tmp/createrepo/%s-%s %s%s/%s/RPMS' %
89 (ftp_dir,ftp_dir,home,tree,arch,ftp_dir,tree,arch))
92 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
94 print '-------------------------- %s --------------------------' % tree
95 for arch in all_ftp_archs:
96 dir = '%s/%s/%s/RPMS' % (ftp_dir, tree, arch)
97 print 'generate repodata for %s using rpmrepo (in %s)' % (arch, dir)
98 os.system('time rpmrepo %s -o %s' % (dir, dir))