47 lines
1.1 KiB
Bash
Executable File
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"
|