]> source.dussan.org Git - nextcloud-server.git/commitdiff
Check for triple dots in translations in CI 20321/head
authorGary Kim <gary@garykim.dev>
Sun, 5 Apr 2020 11:29:08 +0000 (19:29 +0800)
committerGary Kim <gary@garykim.dev>
Tue, 7 Apr 2020 04:06:40 +0000 (12:06 +0800)
Signed-off-by: Gary Kim <gary@garykim.dev>
autotest-checkers.sh
build/triple-dot-checker.php [new file with mode: 0644]

index bb1ad2534fb713161070d5468e46895ff1c08da9..105cf95c5347c216b01a12487e5a048dab83ec9b 100755 (executable)
@@ -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 (file)
index 0000000..fa5edfc
--- /dev/null
@@ -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);