diff --git a/.travis.yml b/.travis.yml index fab8777..86e7d51 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ env: - BROWSER=chromium EXT=zip - BROWSER=firefox EXT=xpi - BROWSER=webext-hybrid EXT=xpi + - BROWSER=webext EXT=xpi script: ./tools/make-${BROWSER}.sh all deploy: provider: releases diff --git a/tools/make-webext-meta.py b/tools/make-webext-meta.py new file mode 100755 index 0000000..5f0b8cb --- /dev/null +++ b/tools/make-webext-meta.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import os +import json +import sys + +if len(sys.argv) == 1 or not sys.argv[1]: + raise SystemExit('Build dir missing.') + +proj_dir = os.path.join(os.path.split(os.path.abspath(__file__))[0], '..') +build_dir = os.path.abspath(sys.argv[1]) + +# Import data from chromium platform +chromium_manifest = {} +webext_manifest = {} + +chromium_manifest_file = os.path.join(proj_dir, 'platform', 'chromium', 'manifest.json') +with open(chromium_manifest_file) as f1: + chromium_manifest = json.load(f1) + +# WebExtension +webext_manifest_file = os.path.join(build_dir, 'manifest.json') +with open(webext_manifest_file) as f2: + webext_manifest = json.load(f2) + +webext_manifest['version'] = chromium_manifest['version'] + +with open(webext_manifest_file, 'w') as f2: + json.dump(webext_manifest, f2, indent=2, separators=(',', ': '), sort_keys=True) + f2.write('\n') diff --git a/tools/make-webext.sh b/tools/make-webext.sh new file mode 100755 index 0000000..07a6ca0 --- /dev/null +++ b/tools/make-webext.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# +# This script assumes a linux environment + +echo "*** uMatrix.webext: Creating web store package" +echo "*** uMatrix.webext: Copying files" + +DES=dist/build/uMatrix.webext +rm -rf $DES +mkdir -p $DES + +cp -R ./assets $DES/ +cp -R ./src/* $DES/ +cp platform/chromium/*.html $DES/ +cp platform/chromium/*.js $DES/js/ +cp -R platform/chromium/img/* $DES/img/ +cp LICENSE.txt $DES/ + +cp platform/webext/polyfill.js $DES/js/ +cp platform/webext/manifest.json $DES/ + +echo "*** uMatrix.webext: Generating meta..." +python tools/make-webext-meta.py $DES/ + +if [ "$1" = all ]; then + echo "*** uMatrix.webext: Creating package..." + pushd $DES > /dev/null + zip ../$(basename $DES).xpi -qr * + popd > /dev/null +fi + +echo "*** uMatrix.webext: Package done."