summarylogtreecommitdiffstats
path: root/gen_pkgbuild.py
diff options
context:
space:
mode:
authorlilac2019-01-15 04:12:10 +0800
committerlilac2019-01-15 04:12:10 +0800
commit2d4e6c62143980fd3221f5c2520823d55d0e11e0 (patch)
treef5837345fdb16b90b3f05a56c556144565c433ff /gen_pkgbuild.py
downloadaur-2d4e6c62143980fd3221f5c2520823d55d0e11e0.tar.gz
update by lilac
Diffstat (limited to 'gen_pkgbuild.py')
-rw-r--r--gen_pkgbuild.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/gen_pkgbuild.py b/gen_pkgbuild.py
new file mode 100644
index 000000000000..0f45c7dfe72f
--- /dev/null
+++ b/gen_pkgbuild.py
@@ -0,0 +1,62 @@
+import io
+import logging
+import sys
+
+from lxml import etree
+import requests
+import tornado.template
+
+
+logger = logging.getLogger(__name__)
+
+
+def main(pkgver):
+ all_languages = {}
+
+ mozilla_translations_page = requests.get(
+ 'https://pontoon.mozilla.org/projects/thunderbird/ajax/',
+ headers={'X-Requested-With': 'XMLHttpRequest'},
+ ).text
+
+ parser = etree.HTMLParser()
+ tree = etree.parse(io.StringIO(mozilla_translations_page), parser)
+ for lang_td in tree.findall('.//td[@class="name"]'):
+ lang_iso639 = lang_td.attrib['data-slug']
+ lang_name = lang_td.find('.//a').text
+ all_languages[lang_iso639] = lang_name
+ all_languages['en-US'] = 'English'
+
+ sha256sums_data = requests.get(
+ f'https://ftp.mozilla.org/pub/thunderbird/releases/{pkgver}/SHA256SUMS'
+ ).text
+
+ sha256sums = []
+ available_languages = []
+ for line in sha256sums_data.strip().split('\n'):
+ sha256sum, filename = line.split(maxsplit=1)
+ if not filename.startswith('linux-x86_64/xpi/'):
+ continue
+ sha256sums.append(sha256sum)
+ available_languages.append(
+ filename[len('linux-x86_64/xpi/'):][:-len('.xpi')])
+ available_languages = sorted(available_languages)
+
+ logger.info('Collected languages: %s', available_languages)
+
+ languages = {}
+ for lang_iso639 in available_languages:
+ languages[lang_iso639] = all_languages[lang_iso639]
+ loader = tornado.template.Loader('.')
+ content = loader.load('PKGBUILD.tmpl').generate(
+ pkgver=pkgver,
+ languages=languages,
+ sha256sums=sha256sums,
+ )
+
+ with open('PKGBUILD', 'wb') as f:
+ f.write(content)
+
+
+if __name__ == '__main__':
+ logging.basicConfig(level=logging.DEBUG)
+ main(sys.argv[1])