Add some patterns for demo and other support
[profile/ivi/package-groups.git] / scripts / mkpatterns.py
1 #!/usr/bin/python
2
3 import os, sys
4
5 group_template = '''<?xml version="1.0" encoding="UTF-8"?>
6 <pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm"
7          xmlns="http://novell.com/package/metadata/suse/pattern">
8    <name>@GROUPNAME@</name>
9    <summary>@GROUPNAME@</summary>
10    <description>@GROUPNAME@</description>
11    <uservisible/>
12    <category lang="en">@GROUPNAME@</category>
13    <rpm:requires>
14 @PKGS@
15    </rpm:requires>
16 </pattern>
17 '''
18
19 entry_template = '''        <rpm:entry name="@PKGNAME@"/>'''
20
21 def main():
22     if not len(sys.argv) == 2:
23         exit()
24     data_file = open(sys.argv[1], 'r')
25     group_table = data_file.readlines()
26     data_file.close()
27
28     pkg_group_info = []
29
30     for record_index in range(len(group_table)):
31         record = group_table[record_index].replace('\n', '')
32         if record_index == 0:
33             group_names = record.split(',')
34         else:
35             pkg_info = record.split(',')
36             pkgname = pkg_info[0]
37             groupnum = 0
38             for index in range(len(pkg_info)):
39                 if pkg_info[index] is not None and pkg_info[index] == "x":
40                     groupnum = index
41                     break
42             if groupnum == 0:
43                 print('package not involved : ' + pkgname)
44             else: 
45                 pkg_group_info.append([pkgname, groupnum])
46
47     for group_index in range(len(group_names)):
48         if group_index == 0:
49             continue
50         group_file = open(os.getcwd() + '/patterns/' + group_names[group_index] + '.xml', 'w')
51         group_content = group_template.replace('@GROUPNAME@', group_names[group_index])
52         pkgs = None 
53         for item in pkg_group_info:
54              if item[1] == group_index:
55                  if pkgs is None:
56                       pkgs = entry_template.replace('@PKGNAME@', item[0])
57                  else:
58                      pkgs = pkgs + '\n' +  entry_template.replace('@PKGNAME@', item[0])
59
60         group_content = group_content.replace('@PKGS@', pkgs)
61         group_file.write(group_content)
62         group_file.close()
63
64
65 if __name__ == "__main__":
66     main()
67