From e14d5cc41ef1a1ca596aa053c072a7dce49d0c72 Mon Sep 17 00:00:00 2001 From: Markus Klein <klein.t3@reelworx.at> Date: Fri, 14 Nov 2014 20:45:17 +0100 Subject: [PATCH] [TASK] Add XLF file checker for TRAVIS CI The script checks for the presence of a t3:id in the XLF files. Moreover the uniqueness is verified. Resolves: #62965 Releases: master, 6.2 Change-Id: I8a2514b31c1484988ef7add937502424f64ed1e4 Reviewed-on: http://review.typo3.org/34184 Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> --- .travis.yml | 5 +++ typo3/sysext/core/Build/Scripts/xlfcheck.sh | 36 +++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 typo3/sysext/core/Build/Scripts/xlfcheck.sh diff --git a/.travis.yml b/.travis.yml index 99906dac0b2e..58742b56c710 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,6 +32,7 @@ notifications: before_script: - if [ -e ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi - if [ -e ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ]; then echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi + - chmod a+x typo3/sysext/core/Build/Scripts/* - sudo apt-get install parallel - composer self-update - composer install @@ -57,3 +58,7 @@ script: exit 99; fi " + - > + echo; + echo "Running XLF checker"; + ./typo3/sysext/core/Build/Scripts/xlfcheck.sh diff --git a/typo3/sysext/core/Build/Scripts/xlfcheck.sh b/typo3/sysext/core/Build/Scripts/xlfcheck.sh new file mode 100644 index 000000000000..fd3c5ce77ae1 --- /dev/null +++ b/typo3/sysext/core/Build/Scripts/xlfcheck.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +######################### +# +# Find all t3:id numbers in XLF language files +# and check their uniqueness. +# +# @author Markus Klein <klein.t3@reelworx.at> +# @date 2014-11-14 +# +########################## + +function join { local IFS="$1"; shift; echo "$*"; } + +find typo3 -name '*.xlf' > xlffiles.txt +sed -ne 's/.*t3:id="\([0-9]\+\)".*/\1/pgM' `cat xlffiles.txt` | sort > xlfids.txt +uniq xlfids.txt > uxlfids.txt +XLFCNT=$(cat xlffiles.txt | wc -l) +XLFIDCNT=$(cat xlfids.txt | wc -l) +UXLFIDCNT=$(cat uxlfids.txt | wc -l) +DIFFIDS=$(join , $(uniq -d xlfids.txt)) +MISSINGIDS=$(join , $(grep -LP 't3:id' `cat xlffiles.txt`)) +rm xlfids.txt uxlfids.txt xlffiles.txt +if [ $XLFCNT -ne $XLFIDCNT ]; +then + echo "There is at least one XLF file missing a unique ID (t3:id)." + echo "Missing in: $MISSINGIDS" + exit 1 +fi +if [ $XLFIDCNT -ne $UXLFIDCNT ]; +then + echo "There is an XLF id that does not seem to be UNIQUE." + echo "Search for t3:id $DIFFIDS" + exit 1 +fi +exit 0 -- GitLab