]> TLD Linux GIT Repositories - tld-ftp-admin.git/blob - modules/baseftptree.py
- non-integer releases are ok in TLD
[tld-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, nvr, tree=None, content=None):
13         self.files={}
14         self.info={}
15         self.build={}
16         self.noarch_arch={}
17         self.tree=tree
18         self.nvr=nvr
19         self.load(content)
20
21     def __repr__(self):
22         return self.nvr
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.nvr), 'r')
30             lines=f.readlines()
31             f.close()
32
33         for entry in lines:
34             i=str.split(str.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 i[2] not in self.build:
40                         self.build[i[2]]=Build()
41                         self.lastbid=i[2]
42                     if i[3]=='requester':
43                         self.build[i[2]].requester=i[4]
44                     elif i[3]=='requester_email':
45                         self.build[i[2]].requester_email=i[4]
46                 elif i[1]=='noarch_arch':
47                     self.noarch_arch[i[2]]=i[3]
48                 else:
49                     self.info[i[1]]=i[2:]
50             elif i[0] == 'file':
51                 if i[1] not in self.files:
52                     self.files[i[1]]=[]
53                 self.files[i[1]].append(i[2])
54
55 class BaseFtpTree:
56     def __init__(self, tree):
57         self.basedir=config.value['ftp_dir']+'/'+tree
58         self.treename=tree
59
60     def __repr__(self):
61         return self.treename
62
63     def has_key(self, key):
64         if fileexists(self.basedir+'/SRPMS/.metadata/'+key+'.src.rpm.info'):
65             return True
66         else:
67             return False
68