]> git.0d.be Git - empathy.git/blob - ubuntu-online-accounts/cc-plugins/generate-plugins.py
remove released flag
[empathy.git] / ubuntu-online-accounts / cc-plugins / generate-plugins.py
1 #!/usr/bin/env python
2
3 # (name, CM, protocol, icon)
4 ALL = [
5         ('AIM', 'haze', 'aim', 'aim'),
6         ('GaduGadu', 'haze', 'gadugadu', 'gadugadu'),
7         ('Groupwise', 'haze', 'groupwise', 'groupwise'),
8         ('ICQ', 'haze', 'icq', 'icq'),
9         ('IRC', 'idle', 'irc', 'irc'),
10         ('Jabber', 'gabble', 'jabber', 'jabber'),
11         ('Mxit', 'haze', 'mxit', 'mxit'),
12         ('Myspace', 'haze', 'myspace', 'myspace'),
13         ('SIP', 'sofiasip', 'sip', 'sip'),
14         ('Salut', 'salut', 'local-xmpp', 'people-nearby'),
15         ('Sametime', 'haze', 'sametime', 'sametime'),
16         ('Yahoo Japan', 'haze', 'yahoojp', 'yahoo'),
17         ('Yahoo!', 'haze', 'yahoo', 'yahoo'),
18         ('Zephyr', 'haze', 'zephyr', 'zephyr'),
19       ]
20
21 class Plugin:
22     def __init__(self, name, cm, protocol, icon):
23         self.name = name
24         self.cm = cm
25         self.protocol = protocol
26         self.icon = icon
27
28 ##### providers/ #####
29
30 def generate_provider_file(p):
31     f = open('providers/%s.provider' % p.protocol, 'w')
32
33     f.write(
34 '''<?xml version="1.0" encoding="UTF-8" ?>
35 <!-- Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py
36      Do NOT edit manually -->
37 <provider id="%s">
38   <name>%s</name>
39   <icon>%s</icon>
40   <plugin>empathy-accounts-plugin</plugin>
41 </provider>
42 ''' % (p.protocol, p.name, p.icon))
43
44 def generate_providers(plugins):
45     '''generate providers/*.provider files and providers/Makefile.am'''
46
47     providers = []
48     for p in plugins:
49         providers.append('      %s.provider' % p.protocol)
50
51         generate_provider_file(p)
52
53     # providers/Makefile.am
54     f = open('providers/Makefile.am', 'w')
55     f.write(
56 '''# Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py
57 # Do NOT edit manually
58 providersdir = $(ACCOUNTS_PROVIDER_FILES_DIR)
59
60 providers_DATA = \\
61 %s \\
62         $(NULL)
63
64 EXTRA_DIST = $(providers_DATA)
65 ''' % ('\\\n'.join(providers)))
66
67 ##### services/ #####
68
69 def generate_service_file(p):
70     f = open('services/%s-im.service' % p.protocol, 'w')
71
72     f.write(
73 '''<?xml version="1.0" encoding="UTF-8" ?>
74 <!-- Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py
75      Do NOT edit manually -->
76 <service id="%s-im">
77   <type>IM</type>
78   <name>%s</name>
79   <icon>%s</icon>
80   <provider>%s</provider>
81
82   <!-- default settings (account settings have precedence over these) -->
83   <template>
84     <group name="telepathy">
85       <setting name="manager">%s</setting>
86       <setting name="protocol">%s</setting>
87     </group>
88     <group name="auth">
89       <setting name="method">password</setting>
90       <setting name="mechanism">password</setting>
91     </group>
92   </template>
93
94 </service>
95 ''' % (p.protocol, p.name, p.icon, p.protocol, p.cm, p.protocol))
96
97 def generate_services(plugins):
98     '''generate services/*-im.service files and services/Makefile.am'''
99
100     services = []
101     for p in plugins:
102         services.append('       %s-im.service' % p.protocol)
103
104         generate_service_file(p)
105
106     # providers/Makefile.am
107     f = open('services/Makefile.am', 'w')
108     f.write(
109 '''# Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py
110 # Do NOT edit manually
111 servicesdir = $(ACCOUNTS_SERVICE_FILES_DIR)
112
113 services_DATA = \\
114 %s \\
115         $(NULL)
116
117 EXTRA_DIST = $(services_DATA)
118 ''' % ('\\\n'.join(services)))
119
120 def generate_all():
121     plugins = []
122
123     for name, cm, protocol, icon in ALL:
124         plugins.append(Plugin(name, cm, protocol, icon))
125
126     generate_providers(plugins)
127     generate_services(plugins)
128
129 if __name__ == '__main__':
130     generate_all()