diff --git a/autotest-checkers.sh b/autotest-checkers.sh index bb1ad2534f..105cf95c53 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 0000000000..fa5edfcd5e --- /dev/null +++ b/build/triple-dot-checker.php @@ -0,0 +1,63 @@ + + * @copyright Copyright (c) 2020 Gary Kim + * + * @author Gary Kim + * + * @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 . + * + */ + +$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);