From 7a0c866d97eb1d98d9a651875bbb79fd0539fa2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 18 Feb 2020 19:05:47 +0100 Subject: [PATCH] ci: Check that files with translatable strings are listed in POTFILES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also known as "Piotr Drąg Bot". We will soon make sure that files processed by xgettext don't use template strings. To make that check as adequate as possible, ensure that no source code files are missing from POTFILES. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016 --- .gitlab-ci.yml | 7 +++++++ .gitlab-ci/check-potfiles.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 .gitlab-ci/check-potfiles.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6e5862444..3b4d23ab9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,6 +46,13 @@ eslint: - reports when: always +potfile_check: + image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1 + stage: review + script: + - ./.gitlab-ci/check-potfiles.sh + <<: *only_default + build: image: registry.gitlab.gnome.org/gnome/mutter/master:v3 stage: build diff --git a/.gitlab-ci/check-potfiles.sh b/.gitlab-ci/check-potfiles.sh new file mode 100755 index 000000000..51cbdd89a --- /dev/null +++ b/.gitlab-ci/check-potfiles.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +srcdirs="js src subprojects/extensions-tool" +globs=('*.js' '*.c') + +# find source files that contain gettext keywords +files=$(grep -lR ${globs[@]/#/--include=} '\(gettext\|[^I_)]_\)(' $srcdirs) + +# 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 <&2 +done +echo >&2 + +exit 1