]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - bin/pfa-genindex
- update to be more generic
[projects/pld-ftp-admin.git] / bin / pfa-genindex
CommitLineData
df78f748
MM
1#!/usr/bin/env python
2# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
3
fdf5d714 4import getopt
df78f748
MM
5import sys, os
6sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
7from common import checkdir
796b7867 8from config import ftp_dir,all_ftp_archs
0bf1ad60 9import config
df78f748
MM
10import ftpio
11
fdf5d714 12try:
bc8134ee 13 opts, args = getopt.getopt(sys.argv[1:], None, ["nopoldek", "noyum", "norpmrepo", "poldek", "yum", "rpmrepo"])
fdf5d714 14except getopt.GetoptError:
749b120d 15 print "ERR: not enough parameters given"
bc8134ee 16 print "gen-indexes.py [--[no]poldek] [--[no]yum] [--[no]rpmrepo] tree [tree2...]"
df78f748
MM
17 sys.exit(1)
18
fdf5d714
AM
19do_poldek = True
20do_yum = True
bc8134ee 21do_rpmrepo = False
fdf5d714
AM
22
23for o, a in opts:
24 if o == "--nopoldek":
25 do_poldek = False
26 if o == "--noyum":
27 do_yum = False
bc8134ee
ER
28 if o == "--norpmrepo":
29 do_rpmrepo = False
30
31 if o == "--poldek":
32 do_poldek = True
33 if o == "--yum":
34 do_yum = True
35 if o == "--rpmrepo":
36 do_rpmrepo = True
37
38if not do_poldek and not do_yum and not do_rpmrepo:
39 print "ERR: speciy at least one action"
fdf5d714
AM
40 sys.exit(1)
41
42trees=args
df78f748
MM
43
44for tree in trees:
45 checkdir(tree)
46
47ftpio.connect('gen-indexes')
48
49locked=[]
50
51for tree in trees:
52 if ftpio.lock(tree, True):
53 locked.append(tree)
54 else:
749b120d 55 print "ERR: %s tree already locked" % tree
df78f748
MM
56 for i in locked:
57 ftpio.unlock(i)
58 sys.exit(1)
59
60home=os.environ['HOME']
61
65473a80 62os.umask(022)
728ca432 63os.nice(19)
65473a80 64
fdf5d714
AM
65if do_poldek:
66 for tree in trees:
67 print '-------------------------- %s --------------------------' % tree
68 for arch in all_ftp_archs:
bc8134ee 69 print 'generate poldek index for %s' % arch
fdf5d714
AM
70 if config.old_poldek:
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))
73 else:
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))
80
81if do_yum:
bc8134ee 82 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
fdf5d714
AM
83 for tree in trees:
84 print '-------------------------- %s --------------------------' % tree
85 for arch in all_ftp_archs:
bc8134ee 86 print 'generate repodata for %s using createrepo' % arch
fdf5d714 87 # Creating indexes for yum and other supporting xml repodata.
bc8134ee 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' %
5458b671 89 (ftp_dir,ftp_dir,home,tree,arch,ftp_dir,tree,arch))
df78f748 90
bc8134ee
ER
91if do_rpmrepo:
92 os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
93 for tree in trees:
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))
7444a3de
ER
99 print 'copy comps.xml'
100 comps = '%s.stat/repodata/comps.xml' % ftp_dir
101 os.system('set -x; cp -p %s %s/repodata' % (comps, dir))
bc8134ee 102
df78f748
MM
103for tree in trees:
104 ftpio.unlock(tree)
This page took 0.052227 seconds and 4 git commands to generate.