summaryrefslogtreecommitdiffstats
path: root/tools/make-mv3.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/make-mv3.sh')
-rwxr-xr-xtools/make-mv3.sh145
1 files changed, 145 insertions, 0 deletions
diff --git a/tools/make-mv3.sh b/tools/make-mv3.sh
new file mode 100755
index 0000000..8b1b2ab
--- /dev/null
+++ b/tools/make-mv3.sh
@@ -0,0 +1,145 @@
+#!/usr/bin/env bash
+#
+# This script assumes a linux environment
+
+set -e
+shopt -s extglob
+
+echo "*** uBOLite.mv3: Creating extension"
+
+PLATFORM="chromium"
+
+for i in "$@"; do
+ case $i in
+ quick)
+ QUICK="yes"
+ shift # past argument=value
+ ;;
+ full)
+ FULL="yes"
+ shift # past argument=value
+ ;;
+ firefox)
+ PLATFORM="firefox"
+ shift # past argument=value
+ ;;
+ chromium)
+ PLATFORM="chromium"
+ shift # past argument=value
+ ;;
+ (uBOLite_+([0-9]).+([0-9]).+([0-9]).+([0-9]))
+ TAGNAME="$i"
+ FULL="yes"
+ shift # past argument=value
+ ;;
+ esac
+done
+
+DES="dist/build/uBOLite.$PLATFORM"
+
+if [ "$QUICK" != "yes" ]; then
+ rm -rf $DES
+fi
+
+mkdir -p $DES
+cd $DES
+DES=$(pwd)
+cd - > /dev/null
+
+mkdir -p $DES/css/fonts
+mkdir -p $DES/js
+mkdir -p $DES/img
+
+if [ -n "$UBO_VERSION" ]; then
+ UBO_REPO="https://github.com/gorhill/uBlock.git"
+ UBO_DIR=$(mktemp -d)
+ echo "*** uBOLite.mv3: Fetching uBO $UBO_VERSION from $UBO_REPO into $UBO_DIR"
+ cd "$UBO_DIR"
+ git init -q
+ git remote add origin "https://github.com/gorhill/uBlock.git"
+ git fetch --depth 1 origin "$UBO_VERSION"
+ git checkout -q FETCH_HEAD
+ cd - > /dev/null
+else
+ UBO_DIR=.
+fi
+
+echo "*** uBOLite.mv3: Copying common files"
+cp -R $UBO_DIR/src/css/fonts/* $DES/css/fonts/
+cp $UBO_DIR/src/css/themes/default.css $DES/css/
+cp $UBO_DIR/src/css/common.css $DES/css/
+cp $UBO_DIR/src/css/dashboard-common.css $DES/css/
+cp $UBO_DIR/src/css/fa-icons.css $DES/css/
+
+cp $UBO_DIR/src/js/dom.js $DES/js/
+cp $UBO_DIR/src/js/fa-icons.js $DES/js/
+cp $UBO_DIR/src/js/i18n.js $DES/js/
+cp $UBO_DIR/src/lib/punycode.js $DES/js/
+
+cp -R $UBO_DIR/src/img/flags-of-the-world $DES/img
+
+cp LICENSE.txt $DES/
+
+echo "*** uBOLite.mv3: Copying mv3-specific files"
+if [ "$PLATFORM" = "firefox" ]; then
+ cp platform/mv3/firefox/background.html $DES/
+fi
+cp platform/mv3/extension/*.html $DES/
+cp platform/mv3/extension/*.json $DES/
+cp platform/mv3/extension/css/* $DES/css/
+cp -R platform/mv3/extension/js/* $DES/js/
+cp platform/mv3/extension/img/* $DES/img/
+cp -R platform/mv3/extension/_locales $DES/
+cp platform/mv3/README.md $DES/
+
+if [ "$QUICK" != "yes" ]; then
+ echo "*** uBOLite.mv3: Generating rulesets"
+ TMPDIR=$(mktemp -d)
+ mkdir -p $TMPDIR
+ if [ "$PLATFORM" = "chromium" ]; then
+ cp platform/mv3/chromium/manifest.json $DES/
+ elif [ "$PLATFORM" = "firefox" ]; then
+ cp platform/mv3/firefox/manifest.json $DES/
+ fi
+ ./tools/make-nodejs.sh $TMPDIR
+ cp platform/mv3/package.json $TMPDIR/
+ cp platform/mv3/*.js $TMPDIR/
+ cp platform/mv3/extension/js/utils.js $TMPDIR/js/
+ cp $UBO_DIR/assets/assets.json $TMPDIR/
+ cp $UBO_DIR/assets/resources/scriptlets.js $TMPDIR/
+ cp -R platform/mv3/scriptlets $TMPDIR/
+ mkdir -p $TMPDIR/web_accessible_resources
+ cp $UBO_DIR/src/web_accessible_resources/* $TMPDIR/web_accessible_resources/
+ cd $TMPDIR
+ node --no-warnings make-rulesets.js output=$DES platform="$PLATFORM"
+ cd - > /dev/null
+ rm -rf $TMPDIR
+fi
+
+echo "*** uBOLite.mv3: extension ready"
+echo "Extension location: $DES/"
+
+if [ "$FULL" = "yes" ]; then
+ EXTENSION="zip"
+ if [ "$PLATFORM" = "firefox" ]; then
+ EXTENSION="xpi"
+ fi
+ echo "*** uBOLite.mv3: Creating publishable package..."
+ if [ -z "$TAGNAME" ]; then
+ TAGNAME="uBOLite_$(jq -r .version $DES/manifest.json)"
+ else
+ tmp=$(mktemp)
+ jq --arg version "${TAGNAME:8}" '.version = $version' "$DES/manifest.json" > "$tmp" \
+ && mv "$tmp" "$DES/manifest.json"
+ fi
+ PACKAGENAME="$TAGNAME.$PLATFORM.mv3.$EXTENSION"
+ TMPDIR=$(mktemp -d)
+ mkdir -p $TMPDIR
+ cp -R $DES/* $TMPDIR/
+ cd $TMPDIR > /dev/null
+ zip $PACKAGENAME -qr ./*
+ cd - > /dev/null
+ cp $TMPDIR/$PACKAGENAME dist/build/
+ rm -rf $TMPDIR
+ echo "Package location: $(pwd)/dist/build/$PACKAGENAME"
+fi