From 45137c2be9fb421f8cd4e37ee549b54a62475d3e Mon Sep 17 00:00:00 2001 From: Deathamns Date: Tue, 16 Dec 2014 17:02:26 +0100 Subject: [PATCH] Firefox: update manifest files when building --- platform/firefox/chrome.manifest | 33 +------------- platform/firefox/install.rdf | 14 +++--- tools/make-firefox-meta.py | 75 ++++++++++++++++++++++++++++++++ tools/make-firefox.sh | 2 +- tools/make-locale-firefox.py | 41 ----------------- 5 files changed, 84 insertions(+), 81 deletions(-) create mode 100644 tools/make-firefox-meta.py delete mode 100644 tools/make-locale-firefox.py diff --git a/platform/firefox/chrome.manifest b/platform/firefox/chrome.manifest index 4676bb131..2fa92a86b 100644 --- a/platform/firefox/chrome.manifest +++ b/platform/firefox/chrome.manifest @@ -1,32 +1 @@ -content ublock ./ -locale ublock en ./locale/en/ -locale ublock ar ./locale/ar/ -locale ublock cs ./locale/cs/ -locale ublock da ./locale/da/ -locale ublock de ./locale/de/ -locale ublock el ./locale/el/ -locale ublock es ./locale/es/ -locale ublock et ./locale/et/ -locale ublock fi ./locale/fi/ -locale ublock fil ./locale/fil/ -locale ublock fr ./locale/fr/ -locale ublock he ./locale/he/ -locale ublock hi ./locale/hi/ -locale ublock hr ./locale/hr/ -locale ublock hu ./locale/hu/ -locale ublock id ./locale/id/ -locale ublock it ./locale/it/ -locale ublock ja ./locale/ja/ -locale ublock mr ./locale/mr/ -locale ublock nb ./locale/nb/ -locale ublock nl ./locale/nl/ -locale ublock pl ./locale/pl/ -locale ublock pt-BR ./locale/pt-BR/ -locale ublock pt-PT ./locale/pt-PT/ -locale ublock ro ./locale/ro/ -locale ublock ru ./locale/ru/ -locale ublock sv ./locale/sv/ -locale ublock tr ./locale/tr/ -locale ublock uk ./locale/uk/ -locale ublock vi ./locale/vi/ -locale ublock zh-CN ./locale/zh-CN/ \ No newline at end of file +content ublock ./ diff --git a/platform/firefox/install.rdf b/platform/firefox/install.rdf index ca810e374..0ba00168c 100644 --- a/platform/firefox/install.rdf +++ b/platform/firefox/install.rdf @@ -1,12 +1,12 @@ - {2b10c1c8-a11f-4bad-fe9c-1c11e82cac42} - 0.7.2.0 - µBlock - Finally, an efficient blocker. Easy on CPU and memory. + {{2b10c1c8-a11f-4bad-fe9c-1c11e82cac42}} + {version} + {name} + {description} https://github.com/gorhill/uBlock - Raymond Hill + {author} 2 true true @@ -16,7 +16,7 @@ - {ec8030f7-c20a-464f-9b0e-13a3a9e97384} + {{ec8030f7-c20a-464f-9b0e-13a3a9e97384}} 29.0 37.0 @@ -25,7 +25,7 @@ - {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} + {{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}} 2.26 2.34 diff --git a/tools/make-firefox-meta.py b/tools/make-firefox-meta.py new file mode 100644 index 000000000..c1fce916a --- /dev/null +++ b/tools/make-firefox-meta.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 + +import os +import json +import sys +from shutil import rmtree +from collections import OrderedDict + +if not sys.argv[1]: + raise SystemExit('Build dir missing.') + + +def mkdirs(path): + try: + os.makedirs(path) + finally: + return os.path.exists(path) + +pj = os.path.join + +build_dir = os.path.abspath(sys.argv[1]) +source_locale_dir = pj(build_dir, '_locales') +target_locale_dir = pj(build_dir, 'locale') +language_codes = [] +description = '' + +for alpha2 in os.listdir(source_locale_dir): + locale_path = pj(source_locale_dir, alpha2, 'messages.json') + with open(locale_path, encoding='utf-8') as f: + string_data = json.load(f, object_pairs_hook=OrderedDict) + + if alpha2 == 'en': + description = string_data['extShortDesc']['message'] + + alpha2 = alpha2.replace('_', '-') + + language_codes.append(alpha2) + + mkdirs(pj(target_locale_dir, alpha2)) + + locale_path = pj(target_locale_dir, alpha2, 'messages.properties') + with open(locale_path, 'wt', encoding='utf-8', newline='\n') as f: + for string_name in string_data: + f.write(string_name) + f.write('=') + f.write(string_data[string_name]['message'].replace('\n', r'\n')) + f.write('\n') + +# generate chrome.manifest file +chrome_manifest = pj(build_dir, 'chrome.manifest') + +with open(chrome_manifest, 'at', encoding='utf-8', newline='\n') as f: + f.write('\n') + + for alpha2 in language_codes: + f.write('locale ublock ' + alpha2 + ' ./locale/' + alpha2 + '/\n') + +rmtree(source_locale_dir) + +# update install.rdf +proj_dir = pj(os.path.split(os.path.abspath(__file__))[0], '..') +chromium_manifest = pj(proj_dir, 'platform', 'chromium', 'manifest.json') + +with open(chromium_manifest, encoding='utf-8') as m: + manifest = json.load(m) + +manifest['description'] = description + +install_rdf = pj(build_dir, 'install.rdf') + +with open(install_rdf, 'r+t', encoding='utf-8', newline='\n') as f: + install_rdf = f.read() + f.seek(0) + + f.write(install_rdf.format(**manifest)) diff --git a/tools/make-firefox.sh b/tools/make-firefox.sh index bdc5a4899..35a4a9934 100644 --- a/tools/make-firefox.sh +++ b/tools/make-firefox.sh @@ -24,6 +24,6 @@ cp platform/firefox/chrome.manifest $DES/ cp platform/firefox/install.rdf $DES/ echo "*** uBlock_xpi: Generating locales" -python tools/make-locale-firefox.py $DES/ +python tools/make-firefox-meta.py $DES/ echo "*** uBlock_xpi: Package done." diff --git a/tools/make-locale-firefox.py b/tools/make-locale-firefox.py deleted file mode 100644 index 582e9a288..000000000 --- a/tools/make-locale-firefox.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python3 - -import os -import json -import sys -from shutil import rmtree -from collections import OrderedDict - -if not sys.argv[1]: - raise SystemExit('Build dir missing.') - - -def mkdirs(path): - try: - os.makedirs(path) - finally: - return os.path.exists(path) - - -build_dir = os.path.abspath(sys.argv[1]) -source_locale_dir = os.path.join(build_dir, '_locales') -target_locale_dir = os.path.join(build_dir, 'locale') - -for alpha2 in os.listdir(source_locale_dir): - locale_path = os.path.join(source_locale_dir, alpha2, 'messages.json') - with open(locale_path, encoding='utf-8') as f: - string_data = json.load(f, object_pairs_hook=OrderedDict) - - alpha2 = alpha2.replace('_', '-') - - mkdirs(os.path.join(target_locale_dir, alpha2)) - - locale_path = os.path.join(target_locale_dir, alpha2, 'messages.properties') - with open(locale_path, 'wt', encoding='utf-8', newline='\n') as f: - for string_name in string_data: - f.write(string_name) - f.write('=') - f.write(string_data[string_name]['message'].replace('\n', r'\n')) - f.write('\n') - -rmtree(source_locale_dir)