diff --git a/.travis.yml b/.travis.yml index 99906dac0b2e306d6012a91bf48b6b1350316842..58742b56c71021d8a5898a4b2b0ccf99a96f3cb8 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 0000000000000000000000000000000000000000..fd3c5ce77ae1a36bcdbe802735877dcf7f7ece04 --- /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