Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorGary Kim <gary@garykim.dev>2020-04-05 14:29:08 +0300
committerGary Kim <gary@garykim.dev>2020-04-07 07:06:40 +0300
commit283b8a5e74b7aa536480c39d22176acd1ad0efba (patch)
treefacddc1a5474c8fbd0dfff96e996a7546e7289db /build
parentcac1480bf885ab6d4be22eeb5cf0cf7caa69d51d (diff)
Check for triple dots in translations in CI
Signed-off-by: Gary Kim <gary@garykim.dev>
Diffstat (limited to 'build')
-rw-r--r--build/triple-dot-checker.php63
1 files changed, 63 insertions, 0 deletions
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);