#!/bin/zsh set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" DIST_DIR="$ROOT_DIR/dist" mkdir -p "$DIST_DIR" # Clean old artifacts rm -f "$DIST_DIR"/*.zip 2>/dev/null || true # Copy source to temp dirs for packaging WORK_CHROME=$(mktemp -d) WORK_FIREFOX=$(mktemp -d) cleanup() { rm -rf "$WORK_CHROME" "$WORK_FIREFOX" 2>/dev/null || true } trap cleanup EXIT # Common files for f in manifest.json popup.html popup.js background.js; do cp "$ROOT_DIR/$f" "$WORK_CHROME/" cp "$ROOT_DIR/$f" "$WORK_FIREFOX/" done # Ensure Firefox manifest has browser_specific_settings with a stable id # If already present, keep as-is. # Nothing to change for Chrome; MV3 is fine. pushd "$WORK_CHROME" >/dev/null zip -r "$DIST_DIR/ali-sharelink-chrome.zip" . >/dev/null popd >/dev/null pushd "$WORK_FIREFOX" >/dev/null zip -r "$DIST_DIR/ali-sharelink-firefox.zip" . >/dev/null popd >/dev/null echo "Build complete:" echo " Chrome: $DIST_DIR/ali-sharelink-chrome.zip" echo " Firefox: $DIST_DIR/ali-sharelink-firefox.zip"