From ef54800c9893395158d59faac8124f5ccd72c032 Mon Sep 17 00:00:00 2001 From: Alexis Hildebrandt Date: Wed, 27 Jul 2022 11:29:05 +0200 Subject: [PATCH] Replace sponge with standard file redirect and mv --- script/update-locales.sh | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/script/update-locales.sh b/script/update-locales.sh index 1e5f9d26e..2cb9a27a2 100755 --- a/script/update-locales.sh +++ b/script/update-locales.sh @@ -1,9 +1,7 @@ #!/bin/bash -# Format and update translations from a source file (en_US.json by default) -# -# Requires jq (https://stedolan.github.io/jq/) and sponge -# (https://www.putorius.net/linux-sponge-soak-up-standard-input-and-write-to-a-file.html) +# Format and update translations from a source file (en_US.json by default). +# Requires jq (https://stedolan.github.io/jq/) set -euo pipefail @@ -13,28 +11,29 @@ PREFIX=_TSTR_ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) LOCALES_DIR="${SCRIPT_DIR}/../src/musikcube/data/locales" TEMPFILE=$(mktemp -p ${TMPDIR:-/tmp} $(basename "${0}").XXXXX) +PREFIXDFILE=$(mktemp -p ${TMPDIR:-/tmp} $(basename "${0}").XXXXX) trap cleanup 0 1 2 3 5 cleanup() { - rm -f "${TEMPFILE}" + rm -f "${PREFIXDFILE}" "${TEMPFILE}" } # Sort $SOURCE translations file alphabetically by keys. -jq -S . "${LOCALES_DIR}/${SOURCE}" | sponge "${LOCALES_DIR}/${SOURCE}" +jq -S . "${LOCALES_DIR}/${SOURCE}" > "${TEMPFILE}" +mv "${TEMPFILE}" "${LOCALES_DIR}/${SOURCE}" # Generate a temporary translations file prefixing all values with ${PREFIX} # to indicate missing translations. awk -F'": ' -v prefix="${PREFIX}" \ '/: "/{sub("\"", "\"" prefix, $2);print $1 "\": " $2;next} {print}' \ "${LOCALES_DIR}/${SOURCE}" \ - > "${TEMPFILE}" \ - # awk > $TEMPFILE + > "${PREFIXDFILE}" \ + # awk > $PREFIXDFILE # Merge language specific translations fle with temporary translations file, # adding any missing translations from ${SOURCE}, prefixed with ${PREFIX}. for JSON in $(git ls-files "${LOCALES_DIR}" | grep -v "${SOURCE}"); do - jq -Ss '.[0] * .[1]' "${TEMPFILE}" "${JSON}" \ - | sponge "${JSON}" \ - # jq | sponge + jq -Ss '.[0] * .[1]' "${PREFIXDFILE}" "${JSON}" > "${TEMPFILE}" + mv "${TEMPFILE}" "${JSON}" done