diff options
author | Gary Kim <gary@garykim.dev> | 2020-04-05 14:29:08 +0300 |
---|---|---|
committer | Gary Kim <gary@garykim.dev> | 2020-04-07 07:06:40 +0300 |
commit | 283b8a5e74b7aa536480c39d22176acd1ad0efba (patch) | |
tree | facddc1a5474c8fbd0dfff96e996a7546e7289db | |
parent | cac1480bf885ab6d4be22eeb5cf0cf7caa69d51d (diff) |
Check for triple dots in translations in CI
Signed-off-by: Gary Kim <gary@garykim.dev>
-rwxr-xr-x | autotest-checkers.sh | 2 | ||||
-rw-r--r-- | build/triple-dot-checker.php | 63 |
2 files changed, 65 insertions, 0 deletions
diff --git a/autotest-checkers.sh b/autotest-checkers.sh index bb1ad2534fb..105cf95c534 100755 --- a/autotest-checkers.sh +++ b/autotest-checkers.sh @@ -6,6 +6,8 @@ bash ./build/autoloaderchecker.sh RESULT=$(($RESULT+$?)) php ./build/translation-checker.php RESULT=$(($RESULT+$?)) +php ./build/triple-dot-checker.php +RESULT=$(($RESULT+$?)) php ./build/htaccess-checker.php RESULT=$(($RESULT+$?)) bash ./build/ca-bundle-checker.sh diff --git a/build/triple-dot-checker.php b/build/triple-dot-checker.php new file mode 100644 index 00000000000..fa5edfcd5ee --- /dev/null +++ b/build/triple-dot-checker.php @@ -0,0 +1,63 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * @copyright Copyright (c) 2020 Gary Kim <gary@garykim.dev> + * + * @author Gary Kim <gary@garykim.dev> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +$directories = [ + __DIR__ . '/../apps', + __DIR__ . '/../core' +]; + +$errors = []; +foreach ($directories as $dir) { + $it = new \RecursiveDirectoryIterator($dir); + + foreach (new RecursiveIteratorIterator($it) as $file) { + if ($file->getExtension() === 'map') { + continue; + } + $content = file_get_contents($file->getPathname()); + $matches = preg_grep('/[^A-Za-z][tn]\([\'"][^\'"]*?[\'"],( ?)[\'"][^\'"]*?(\.\.\.)[^\'"]*?[\'"]/sU', explode(PHP_EOL, $content)); + + foreach ($matches as $ln => $match) { + if (file_exists($file->getPathname() . '.map')) { + $errors[] = sprintf('At line %d in file %s (file may be transpiled)', $ln, $file); + } else { + $errors[] = sprintf('At line %d in file %s', $ln, $file); + } + } + } +} + +echo PHP_EOL . PHP_EOL; +if (count($errors) > 0) { + if (count($errors) > 1) { + echo sprintf('ERROR: There are %d uses of triple dot instead of ellipsis:', count($errors)) . PHP_EOL; + } else { + echo 'ERROR: There is 1 use of triple dot instead of ellipsis:' . PHP_EOL; + } + echo implode(PHP_EOL, $errors) . PHP_EOL; + exit(1); +} + +echo 'OK: all good! No use of triple dot instead of ellipsis found.' . PHP_EOL; +exit(0); |