#!/bin/bash if [ -z $WAPPALYZER_ROOT ] then echo "\$WAPPALYZER_ROOT not set" exit 1 fi if [ -z $WAPPALYZER_NODE_PATH ] then echo "\$WAPPALYZER_NODE_PATH not set" exit 1 fi set -eu wappalyzer validate echo "Prettifying apps.json..." node $WAPPALYZER_NODE_PATH/node_modules/jsonlint/lib/cli.js -ist $'\t' $WAPPALYZER_ROOT/src/apps.json echo "Compressing PNG and SVG icons..." node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/* --out-dir $WAPPALYZER_ROOT/src/icons echo "Converting SVG icons to PNG..." OIFS="$IFS" IFS=$'\n' for svg in $(find $WAPPALYZER_ROOT/src/icons -type f -name "*.svg") do echo " Converting $(basename "$svg")..." dest="$WAPPALYZER_ROOT/src/icons/converted/$(basename "$svg").png" if [[ ! -f "$dest" ]]; then node $WAPPALYZER_NODE_PATH/node_modules/svg2png/bin/svg2png-cli "$svg" --width=32 --height=32 --output "$dest" || true fi done IFS="$OIFS" echo "Compressing converted PNG icons..." node $WAPPALYZER_NODE_PATH/node_modules/imagemin-cli/cli.js $WAPPALYZER_ROOT/src/icons/converted/* $WAPPALYZER_ROOT/src/icons/converted wappalyzer links # Mozilla Firefox echo "Building Firefox driver..." pushd $WAPPALYZER_ROOT/src/drivers/firefox > /dev/null node $WAPPALYZER_NODE_PATH/node_modules/jpm/bin/jpm xpi && mv *.xpi $WAPPALYZER_ROOT/build/wappalyzer_firefox.xpi popd > /dev/null # Google Chrome echo "Building Chrome driver..." pushd $WAPPALYZER_ROOT/src/drivers/chrome > /dev/null zip -qr $WAPPALYZER_ROOT/build/wappalyzer_chrome.zip . popd > /dev/null # Bookmarklet echo "Building Bookmarklet driver..." echo "var json =" > /tmp/bookmarklet cat $WAPPALYZER_ROOT/src/apps.json >> /tmp/bookmarklet echo -e ";\n\nwappalyzer.apps = json.apps;\nwappalyzer.categories = json.categories;" >> /tmp/bookmarklet mv /tmp/bookmarklet $WAPPALYZER_ROOT/src/drivers/bookmarklet/js/apps.js echo "Done. Builds have been created in $WAPPALYZER_ROOT/build."