#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" UUID="user-switcher@felixfoertsch.de" STAGE_DIR="${ROOT_DIR}/.build/release/${UUID}" DIST_DIR="${ROOT_DIR}/dist" ZIP_PATH="${DIST_DIR}/${UUID}.shell-extension.zip" if ! command -v msgfmt >/dev/null 2>&1; then echo "msgfmt is required to build release translations (install gettext)." >&2 exit 1 fi if ! command -v zip >/dev/null 2>&1; then echo "zip is required to create the release archive." >&2 exit 1 fi rm -rf "$STAGE_DIR" mkdir -p "$STAGE_DIR" mkdir -p "$DIST_DIR" cp "$ROOT_DIR/metadata.json" "$ROOT_DIR/extension.js" "$STAGE_DIR/" for lang in en de es fr; do po_path="${ROOT_DIR}/locale/${lang}/LC_MESSAGES/user-switcher.po" mo_dir="${STAGE_DIR}/locale/${lang}/LC_MESSAGES" mo_path="${mo_dir}/user-switcher.mo" if [[ ! -f "$po_path" ]]; then echo "missing translation source: $po_path" >&2 exit 1 fi mkdir -p "$mo_dir" msgfmt "$po_path" -o "$mo_path" done rm -f "$ZIP_PATH" ( cd "$STAGE_DIR" zip -qr "$ZIP_PATH" metadata.json extension.js locale ) echo "Release package created: $ZIP_PATH"