]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blob - modules/baseftptree.py
- from-incoming.py uses Base{FtpTree,Pkg}; now I can implement sending errors
[projects/pld-ftp-admin.git] / modules / baseftptree.py
1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
3 import string, config
4 from common import fileexists
5
6 class Build:
7     def __init__(self):
8         self.requester=''
9         self.requester_email=''
10
11 class BasePkg:
12     def __init__(self, name, tree=None, content=None):
13         self.files={}
14         self.info={}
15         self.build={}
16         self.noarch_arch={}
17         self.tree=tree
18         self.name=name
19         self.load(content)
20
21     def __repr__(self):
22         return self.name
23
24     def load(self, content=None):
25         if content:
26             lines=content.splitlines()
27         else:
28             f=open("%s/SRPMS/.metadata/%s.src.rpm.info" % 
29                    (self.tree.basedir, self.name), 'r')
30             lines=f.readlines()
31             f.close()
32
33         for entry in lines:
34             i=string.split(string.strip(entry), ':')
35             if i[0] == 'info':
36                 if len(i)==3:
37                     self.info[i[1]]=i[2]
38                 elif i[1]=='build':
39                     if not self.build.has_key(i[2]):
40                         self.build[i[2]]=Build()
41                     if i[3]=='requester':
42                         self.build[i[2]].requester=i[4]
43                     elif i[3]=='requester_email':
44                         self.build[i[2]].requester_email=i[4]
45                 elif i[1]=='noarch_arch':
46                     self.noarch_arch[i[2]]=i[3]
47                 else:
48                     self.info[i[1]]=i[2:]
49             elif i[0] == 'file':
50                 if not self.files.has_key(i[1]):
51                     self.files[i[1]]=[]
52                 self.files[i[1]].append(i[2])
53
54 class BaseFtpTree:
55     def __init__(self, tree):
56         self.basedir=config.value['ftp_dir']+'/'+tree
57         self.treename=tree
58
59     def __repr__(self):
60         return self.treename
61
62     def has_key(self, key):
63         if fileexists(self.basedir+'/SRPMS/.metadata/'+key+'.src.rpm.info'):
64             return True
65         else:
66             return False
67
This page took 0.037814 seconds and 3 git commands to generate.