1 import re
2
5 self.file = file
6 self.menu_file = []
7 self.parse()
8
10 first_pass = []
11 f = open(self.file, 'r')
12 for line in f:
13 if line.strip() == '':
14 continue
15 if line.startswith('?package'):
16 first_pass.append('')
17 first_pass[-1] += line.replace('\n', ' ').replace('\\', ' ')
18 f.close()
19 for stanza in first_pass:
20 self.menu_file.append({'package': '', 'fields': {}})
21 self.menu_file[-1]['package'] = \
22 stanza[stanza.find('(')+1:stanza.find(')')]
23 rest_line = stanza[stanza.find(':')+1:]
24 last_field = ''
25 for data in re.split(r'\s+', rest_line):
26 if not data.strip():
27 continue
28 if re.match(r'(needs|section|title|longtitle|icon(|16x16|32x32)|command|hints)=', \
29 data):
30 tmp_line = data.split('=')
31 last_field = tmp_line[0]
32 self.menu_file[-1]['fields'][last_field] = tmp_line[1]
33 else:
34 self.menu_file[-1]['fields'][last_field] += " " + data
35