Files
gnome-user-switcher/gnome-user-switcher-extension/scripts/build-release.sh
2026-03-01 11:44:02 +01:00

47 lines
1.1 KiB
Bash
Executable File

#!/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"