import repository from arizona
[raven.git] / lib / ravenlib / files / pacpackages.py
1 import os
2 import time
3
4 class pacpackages:
5
6     def __init__(self):
7         self.reset()
8
9     def reset(self):
10         self.header = '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>\n' + \
11                   '<PACKAGES>\n'
12         self.footer = '</PACKAGES>\n'
13
14         self.contents = {}
15
16     def get_string(self):
17         return self.header + self.get_contents_string() + self.footer
18
19     def get_contents(self):
20         return self.contents
21
22     def get_contents_string(self):
23         contentsStr = ""
24         for key in self.contents.keys():
25             if key == "ALL":
26                 sectionHeader = '<CONFIG>\n'
27             else:
28                 sectionHeader = '<CONFIG ' + key + '>\n'
29             sectionFooter = '</CONFIG>\n'
30
31             contentsStr += sectionHeader
32
33             for item in self.contents[key]:
34                 line = '<' + item["action"] + ' PACKAGE="' + item["package"] + '" />\n'
35                 contentsStr += line
36
37             contentsStr += sectionFooter
38
39         return contentsStr
40
41     def save(self, destFileName):
42         open(destFileName, "w").write(self.get_string())
43
44     def add(self, type, groupName, action, package):
45         if groupName:
46             key = type + '="' + groupName + '"'
47         else:
48             key = type
49         list = self.contents.get(key, [])
50         list.append({"action": action, "package": package})
51         self.contents[key] = list
52
53