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 >>sys.stderr, "ERR: not enough parameters given"
16 print >>sys.stderr, "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 >>sys.stderr, "ERR: speciy at least one action"
47 ftpio.connect('gen-indexes')
52 if ftpio.lock(tree, True):
55 print >>sys.stderr, "ERR: %s tree already locked" % tree
60 home = os.environ['HOME']
66 poldek = '%s.stat/bin/poldek-new --cachedir=%s/tmp/poldek --conf %s.stat/etc/poldek.conf --mkidxz' % (ftp_dir, home, ftp_dir)
69 print '-------------------------- %s --------------------------' % tree
70 for arch in all_ftp_archs:
71 print 'generate poldek index for %s' % arch
72 if config.poldek_indexes != "old":
73 os.system('%s -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pndir' % (poldek, ftp_dir, tree, arch))
74 if config.poldek_indexes != "new":
75 os.system('%s -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pdir' % (poldek, ftp_dir, tree, arch))
78 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
79 yum = '%s.stat/bin/createrepo -d -g %s.stat/repodata/comps.xml' % (ftp_dir, ftp_dir)
81 print '-------------------------- %s --------------------------' % tree
82 cachedir = '%s/tmp/createrepo/%s' % (home, tree)
83 for arch in all_ftp_archs:
84 print 'generate repodata for %s using createrepo' % arch
85 # Creating indexes for yum and other supporting xml repodata.
86 os.system('time %s --cache %s-%s %s%s/%s/RPMS' % (yum, cachedir, arch, ftp_dir, tree, arch))
89 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
91 print '-------------------------- %s --------------------------' % tree
92 for arch in all_ftp_archs:
93 dir = '%s/%s/%s/RPMS' % (ftp_dir, tree, arch)
94 print 'generate repodata for %s using rpmrepo (in %s)' % (arch, dir)
95 os.system('time rpmrepo %s -o %s' % (dir, dir))
96 print 'copy comps.xml'
97 comps = '%s.stat/repodata/comps.xml' % ftp_dir
98 os.system('set -x; cp -p %s %s/repodata' % (comps, dir))