Git Repositories

SLKBUILD for LibreOffice under Salix.
[libreoffice-slkbuild.git] / generate-SLKBUILD.py
1 #!/usr/bin/env python
2 # coding: utf-8
3 # vim: set ai et sw=2 sts=2 ts=2 tw=0:
4
5 from __future__ import division, print_function, unicode_literals
6 import sys
7
8 def gen_lang_list(langs):
9   return ' '.join(sorted(langs.keys()))
10
11 def gen_dict_list(langs):
12   s = ''
13   for codel in sorted(langs.keys()):
14     if langs[codel][1]:
15       if s:
16         s += "\n"
17       s += codel + ":" + langs[codel][1]
18   return s
19
20 def gen_help_list(helps):
21   return ' '.join(sorted(helps.keys()))
22
23 def gen_lang_pkg_list(langs):
24   s = ''
25   for code in sorted(langs.keys()):
26     if s:
27       s += "\n"
28     s += '"libreoffice-l10n-' + code + '"'
29   return s
30
31 def gen_help_pkg_list(helps):
32   s = ''
33   for code in sorted(helps.keys()):
34     if s:
35       s += "\n"
36     s += '"libreoffice-help-' + code + '"'
37   return s
38
39 def gen_lang_slackdesc_list(langs):
40   s = ''
41   for code in sorted(langs.keys()):
42     if s:
43       s += "\n"
44     s += """libreoffice_l10n_{codeu}_slackdesc=\\
45 (
46 #|-----handy-ruler------------------------------------------------------|
47 "libreoffice-l10n-{code} ({descr})"
48 "{descr} language pack for LibreOffice"
49 "Use this package if you want to run LibreOffice in"
50 "{descr}."
51 )
52 """.format(code=code, codeu=code.replace('-', '_'), descr=langs[code][0])
53   return s
54
55 def gen_help_slackdesc_list(helps):
56   s = ''
57   for code in sorted(helps.keys()):
58     if s:
59       s += "\n"
60     s += """libreoffice_help_{codeu}_slackdesc=\\
61 (
62 #|-----handy-ruler------------------------------------------------------|
63 "libreoffice-help-{code} ({descr})"
64 "{descr} help pack for LibreOffice"
65 "Use this package if you want to have the help pages locally in"
66 "{descr}."
67 )
68 """.format(code=code, codeu=code.replace('-', '_'), descr=helps[code])
69   return s
70
71 def main():
72   languages = {}
73   with open('languages', 'r') as f:
74     for l in f:
75       (code, desc) = l.rstrip('\n').split(':')
76       languages[code] = desc
77   langs = {}
78   with open('langs', 'r') as f:
79     for l in f:
80       (codel, coded) = l.rstrip('\n').split(':')
81       langs[codel] = (languages[codel], coded)
82   helps = {}
83   with open('helps', 'r') as f:
84     for code in f:
85       code = code.rstrip('\n')
86       helps[code] = languages[code]
87   tpl_string = None
88   with open('SLKBUILD.tpl', 'r') as tpl:
89     tpl_string = tpl.read()
90   slk_string = tpl_string \
91     .replace('__lang_list__', gen_lang_list(langs)) \
92     .replace('__dict_list__', gen_dict_list(langs)) \
93     .replace('__help_list__', gen_help_list(helps)) \
94     .replace('__libreoffice_l10n_LANG__', gen_lang_pkg_list(langs)) \
95     .replace('__libreoffice_help_LANG__', gen_help_pkg_list(helps)) \
96     .replace('__libreoffice_l10n_LANG_slackdesc__', gen_lang_slackdesc_list(langs)) \
97     .replace('__libreoffice_help_LANG_slackdesc__', gen_help_slackdesc_list(helps))
98   with open('SLKBUILD', 'w') as slk:
99     slk.write(slk_string)
100 main()