[gnome-shell] ci: Check that files with translatable strings are listed in POTFILES



commit 7a0c866d97eb1d98d9a651875bbb79fd0539fa2f
Author: Florian Müllner <fmuellner gnome org>
Date:   Tue Feb 18 19:05:47 2020 +0100

    ci: Check that files with translatable strings are listed in POTFILES
    
    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(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6e58624440..3b4d23ab9a 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 0000000000..51cbdd89a2
--- /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 <<EOT
+
+The following files are missing from po/POTFILES.po:
+
+EOT
+for f in $missing; do
+  echo "  $f" >&2
+done
+echo >&2
+
+exit 1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]