diff options
Diffstat (limited to '.gitlab-ci/check-potfiles.sh')
-rwxr-xr-x | .gitlab-ci/check-potfiles.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/.gitlab-ci/check-potfiles.sh b/.gitlab-ci/check-potfiles.sh new file mode 100755 index 0000000..0969da1 --- /dev/null +++ b/.gitlab-ci/check-potfiles.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +srcdirs="src subprojects/extensions-tool" +uidirs="js subprojects/extensions-app" +desktopdirs="data subprojects/extensions-app/ subprojects/extensions-tool" + +# find source files that contain gettext keywords +files=$(grep -lR --include='*.c' '\(gettext\|[^I_)]_\)(' $srcdirs) + +# find ui files that contain translatable string +files="$files "$(grep -lRi --include='*.ui' 'translatable="[ty1]' $uidirs) + +# find .desktop files +files="$files "$(find $desktopdirs -name '*.desktop*') + +# filter out excluded files +if [ -f po/POTFILES.skip ]; then + files=$(for f in $files; do ! grep -q ^$f po/POTFILES.skip && echo $f; done) +fi + +# find those that aren't listed in POTFILES.in +missing=$(for f in $files; do ! grep -q ^$f po/POTFILES.in && echo $f; done) + +if [ ${#missing} -eq 0 ]; then + exit 0 +fi + +cat >&2 <<EOT + +The following files are missing from po/POTFILES.po: + +EOT +for f in $missing; do + echo " $f" >&2 +done +echo >&2 + +exit 1 |