From 2a5f690a71ca7120c9851b0a2bc9c3f6bb4e923b Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Mon, 6 Sep 2021 12:09:20 +0200 Subject: [PATCH] [fix] translation: lock weblate only when there is an actual change of messages.pot Close #290 --- docs/dev/translation.svg | Bin 17226 -> 18016 bytes manage | 23 +++++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/dev/translation.svg b/docs/dev/translation.svg index 70400cca7416d1dfa8994f0cfb7881ce806ebefc..71f4172b5260d73eb72b6cb59b21d3d440ea6434 100644 GIT binary patch literal 18016 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 A00000 diff --git a/manage b/manage index 6f6f1a4fe..53c31be06 100755 --- a/manage +++ b/manage @@ -239,16 +239,14 @@ weblate.push.translations() { local messages_pot diff_messages_pot last_commit_hash last_commit_detail \ last_commit_message exitcode + messages_pot="${TRANSLATIONS_WORKTREE}/searx/translations/messages.pot" ( set -e - # lock change on weblate - pyenv.cmd wlc lock # get translations branch in git worktree (TRANSLATIONS_WORKTREE) weblate.translations.worktree # update messages.pot in the master branch build_msg BABEL 'extract messages from source files and generate POT file' - messages_pot="${TRANSLATIONS_WORKTREE}/searx/translations/messages.pot" pyenv.cmd pybabel extract -F babel.cfg \ -o "${messages_pot}" \ "searx/" @@ -258,8 +256,25 @@ weblate.push.translations() { git diff -- "searx/translations/messages.pot") if ! echo "$diff_messages_pot" | grep -qE "[\+\-](msgid|msgstr)"; then build_msg BABEL 'no changes detected, exiting' - return 0 + return 42 fi + return 0 + ) + exitcode=$? + if [ "$exitcode" -eq 42 ]; then + return 0 + fi + if [ "$exitcode" ]; then + return $exitcode + fi + ( + set -e + + # lock change on weblate + # weblate may add commit(s) since the call to "weblate.translations.worktree". + # this is not a problem because after this line, "weblate.to.translations" + # calls again "weblate.translations.worktree" which calls "git pull" + pyenv.cmd wlc lock # save messages.pot in the translations branch for later pushd "${TRANSLATIONS_WORKTREE}"