]> BookStack Code Mirror - devops/blob - meta-scripts/bookstack-format-crowdin-members-report
Added script to format crowdin top member report
[devops] / meta-scripts / bookstack-format-crowdin-members-report
1 #!/usr/bin/env php
2 <?php
3
4 function error($text) {
5         echo $text . "\n";
6         exit(1);
7 }
8
9 function output($text) {
10     echo $text . "\n";
11 }
12
13
14 // Check a file path is provided
15 if (count($argv) < 2) {
16         error("Path to JSON report required");
17 }
18
19 // Check file path exists
20 $reportFile = realpath($argv[1]);
21 if (!file_exists($reportFile)) {
22         error("JSON report file not found at {$reportFile}");
23 }
24
25 $reportContent = file_get_contents($reportFile);
26 $report = json_decode($reportContent, true);
27 if (is_null($report)) {
28         error("Could not read JSON content from file {$reportFile}");
29 }
30
31 foreach ($report['data'] as $userData) {
32         $fullName = $userData['user']['fullName'];
33         $languages = array_map(function($lang) {
34                 return '*' . $lang['name'] . '*';
35         }, $userData['languages']);
36
37         if (count($languages) === 0) {
38                 continue;
39         }
40
41         $langString = implode(", ", $languages);
42         output("* {$fullName} - {$langString}");
43 }