CloverBootloader/CloverPackage/package/translate.sh
Sergey Isakov 5864939127 new way to get clover revision by Dids
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
2019-10-28 13:22:48 +03:00

117 lines
3.7 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Prevent the script from doing bad things
set -u # Abort with unset variables
packagename="Clover"
# Go to the script directory to create the package
cd "$(dirname $0)"
declare -r PKGROOT="$PWD"
declare -r SRCROOT="$PWD"/../../..
declare -r SYMROOT=../sym
declare -r PKG_RESOURCES_DIR="${SYMROOT}"/Resources
# ====== LANGUAGE SETUP ======
export LANG='en_US.UTF-8'
export LC_COLLATE='C'
export LC_CTYPE='C'
# ====== REVISION/VERSION ======
declare -r CLOVER_VERSION='v2.5k'
# declare -r CLOVER_REVISION=$(git describe --tags $(git rev-list --tags --max-count=1))
declare -r CLOVER_REVISION=$(git describe --tags --abbrev=0)
# ==== CHECK ENVIRONEMENT ====
GETTEXT_PREFIX=${GETTEXT_PREFIX:-"${SRCROOT}"/opt/local}
echo "${GETTEXT_PREFIX}"
# Check that the gettext utilities exists
if [[ ! -x "$GETTEXT_PREFIX/bin/msgmerge" ]]; then
msgmerge_bin="$(type -P msgmerge)"
if [[ -x "$msgmerge_bin" ]]; then
export GETTEXT_PREFIX="${msgmerge_bin%/bin/msgmerge}"
else
build_gettext_script="$(cd "$PKGROOT"/../..; PWD -P)/buildgettext.sh"
echo "GNU gettext utilities is mandatory to build Clover package." >&2
echo "Use the $build_gettext_script script to build them." >&2
exit 1
fi
fi
export PATH="${GETTEXT_PREFIX}/bin:${PATH}"
# ========== OPTIONS ===========
UPDATE_PO=0
while [[ $# -gt 0 ]]; do
option=$1
shift
case "$option" in
--update-po) UPDATE_PO=1 ;;
-*)
printf "Unrecognized option \`%s'\n" "$option" 1>&2
exit 1
;;
esac
done
TEMPLATES_DIR="Resources/templates"
CLOVER_UPDATER_DIR="../CloverUpdater"
CLOVER_PREFPANE_DIR="../CloverPrefpane"
PODIR="po"
# Update CloverUpdater.strings
"$CLOVER_UPDATER_DIR"/translate_xib.sh --extract-only
# Update CloverPrefpane.strings
"$CLOVER_PREFPANE_DIR"/translate_xib.sh --extract-only
# Update Localizable.strings
"$CLOVER_PREFPANE_DIR"/translate_source.sh --extract-only
# Check if pot and po files need to be updated
IFS=$'\n' # '
last_resources_update=0
for file in "$TEMPLATES_DIR"/*.html "$TEMPLATES_DIR"/Localizable.strings \
"$CLOVER_UPDATER_DIR"/CloverUpdater.strings \
"$CLOVER_PREFPANE_DIR"/CloverPrefpane.strings "$CLOVER_PREFPANE_DIR"/Localizable.strings; do
timestamp=$(stat -f %m "$file")
[[ $timestamp -gt $last_resources_update ]] && last_resources_update=$timestamp
done
last_pot_update=$(stat -f %m "$PODIR"/clover.pot)
[[ $last_pot_update -lt $last_resources_update ]] && UPDATE_PO=1
if [[ "$UPDATE_PO" -ne 1 ]]; then
# Copying po and pot files outside the repository
po_tmpdir=$(mktemp -d -t po)
ditto --noextattr --noqtn "${PKGROOT}"/po/ "$po_tmpdir"/
# Automatically remove temporary directory at exit
trap 'echo; rm -rf "$po_tmpdir"' EXIT
PODIR="$po_tmpdir"
fi
PERLLIB=bin/po4a/lib \
bin/po4a/po4a \
--package-name 'Clover' \
--package-version "${CLOVER_VERSION}-r${CLOVER_REVISION}" \
--msgmerge-opt '--lang=$lang --previous --width=79' \
--variable PODIR="$PODIR" \
--variable TEMPLATES_DIR="$TEMPLATES_DIR" \
--variable CLOVER_UPDATER_DIR="$CLOVER_UPDATER_DIR" \
--variable CLOVER_PREFPANE_DIR="$CLOVER_PREFPANE_DIR" \
--variable OUTPUT_DIR="${PKG_RESOURCES_DIR}/${packagename}/Resources" \
po4a-clover.cfg
# Local Variables: #
# mode: ksh #
# tab-width: 4 #
# indent-tabs-mode: nil #
# End: #
#
# vi: set expandtab ts=4 sw=4 sts=4: #