summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml1
-rw-r--r--po/POTFILES.in7
-rwxr-xr-xpo/POTgen.sh25
-rwxr-xr-xtools/ci/jobs/potfiles_update_check.sh21
4 files changed, 49 insertions, 5 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c266c1c16..48cf745b0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -361,6 +361,7 @@ linters:
- ./tools/ci/jobs/imagemagiccheck.sh
- ./tools/ci/jobs/cpplint.sh
- ./tools/ci/jobs/nsiqcppstyle.sh
+ - ./tools/ci/jobs/potfiles_update_check.sh
<<: *job-push
variables:
MPLINT_PACKAGE_URL: "$CI_API_V4_URL/projects/mana%2Fmplint/jobs/artifacts/master/download?job=package_debian10_buster"
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 641a0e5d5..ab55fb4fe 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,3 +1,4 @@
+# Generated by ./po/POTgen.sh, do not edit manually
src/actormanager.cpp
src/being/being.cpp
src/being/localplayer.cpp
@@ -65,8 +66,8 @@ src/gui/widgets/tabs/setup_video.cpp
src/gui/widgets/tabs/setup_visual.cpp
src/gui/widgets/tabs/socialattacktab.h
src/gui/widgets/tabs/socialfriendstab.h
-src/gui/widgets/tabs/socialguildtab2.h
src/gui/widgets/tabs/socialguildtab.h
+src/gui/widgets/tabs/socialguildtab2.h
src/gui/widgets/tabs/socialnavigationtab.h
src/gui/widgets/tabs/socialpartytab.h
src/gui/widgets/tabs/socialpickuptab.h
@@ -146,6 +147,7 @@ src/net/ea/chatrecv.cpp
src/net/ea/gamerecv.cpp
src/net/ea/loginrecv.cpp
src/net/ea/network.cpp
+src/net/ea/traderecv.cpp
src/net/eathena/charserverrecv.cpp
src/net/eathena/chatrecv.cpp
src/net/eathena/familyrecv.cpp
@@ -161,7 +163,6 @@ src/net/eathena/maptypeproperty2.h
src/net/eathena/playerrecv.cpp
src/net/eathena/skillrecv.cpp
src/net/eathena/vendingrecv.cpp
-src/net/ea/traderecv.cpp
src/net/tmwa/charserverhandler.cpp
src/net/tmwa/charserverrecv.cpp
src/net/tmwa/chatrecv.cpp
@@ -179,8 +180,8 @@ src/progs/manaplus/actions/pets.cpp
src/progs/manaplus/actions/statusbar.cpp
src/progs/manaplus/actions/windows.cpp
src/progs/manaplus/client.cpp
-src/render/rendererslistsdl2.h
src/render/rendererslistsdl.h
+src/render/rendererslistsdl2.h
src/resources/beinginfo.cpp
src/resources/db/avatardb.cpp
src/resources/db/clandb.cpp
diff --git a/po/POTgen.sh b/po/POTgen.sh
index 15fc85677..a2b1ad31c 100755
--- a/po/POTgen.sh
+++ b/po/POTgen.sh
@@ -1,4 +1,25 @@
#!/bin/bash
+# This program is run by a CI job
-cd ..
-grep "_(" -Irl src | sort >po/POTFILES.in
+if [[ ! -d po || ! -d src ]]; then
+ printf "Please run this in top level directory"
+ exit 1
+fi
+
+printf "# Generated by %s, do not edit manually\n" "$0" > po/POTFILES.in
+
+#printf "Environment LANG is '%s'\n" "$(env | grep '^LANG=')"
+#printf "Environment LC_COLLATE is '%s'\n" "$(env | grep '^LC_COLLATE=')"
+#if command -v locale >/dev/null; then
+# printf "locale LC_COLLATE is '%s'\n" "$(locale | grep '^LC_COLLATE=')"
+#fi
+
+# See WARNING in manpage of GNU Coreutils sort:
+# LC_COLLATE override is required to preserve the order of files
+# across platforms. But it can be override by LC_ALL.
+# But, LC_ALL should never be set in a sane environment.
+grep "_(" src \
+ --binary-files=without-match \
+ --files-with-matches \
+ --recursive \
+ | LC_COLLATE="C" sort >> po/POTFILES.in
diff --git a/tools/ci/jobs/potfiles_update_check.sh b/tools/ci/jobs/potfiles_update_check.sh
new file mode 100755
index 000000000..6610d4332
--- /dev/null
+++ b/tools/ci/jobs/potfiles_update_check.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+set -e # Fail if any command fails
+set -u # Fail if any variable is unset when used
+
+export LOGFILE=potfiles.log
+source ./tools/ci/scripts/init.sh
+
+./po/POTgen.sh
+
+# error if POTgen applied any changes
+git diff >> "$ERRFILE"
+
+# Save in-progress work in case someone runs this script manually.
+#git stash push -m "POTgen run"
+# Restore repository back to original state for other ci jobs.
+#git reset --hard
+
+run_check_warnings
+
+echo ok