1
1
<?php
2
2
3
3
declare (strict_types=1 );
4
- $ invalidFiles = jsonStyleCheck ('. ' );
4
+
5
+ if ($ argc == 1 ) {
6
+ $ mode = '' ;
7
+ $ dir = '. ' ;
8
+ } else if ($ argc == 2 ) {
9
+ $ mode = $ argv [1 ];
10
+ $ dir = '. ' ;
11
+ } else if ($ argc == 3 ) {
12
+ $ mode = $ argv [1 ];
13
+ $ dir = $ argv [2 ];
14
+ } else {
15
+ die ('JSON Checker cannot be run with this set of parameters! ' );
16
+ }
17
+
18
+ if (!in_array ($ mode , ['' , 'fix ' ])) {
19
+ die ('Unsupported mode " ' . $ mode . '"! ' );
20
+ }
21
+
22
+ $ invalidFiles = jsonStyleCheck ($ dir , $ mode );
5
23
6
24
if (!empty ($ invalidFiles )) {
7
25
foreach ($ invalidFiles as $ invalidFile ) {
10
28
exit (1 );
11
29
}
12
30
13
- function jsonStyleCheck (string $ dir )
31
+ function jsonStyleCheck (string $ dir, string $ mode )
14
32
{
15
33
$ invalidFiles = [];
16
34
$ files = scandir ($ dir );
17
35
foreach ($ files as $ file ) {
18
36
if ($ file != '. ' && $ file != '.. ' && $ dir != './libs/vendor ' ) {
19
37
if (is_dir ($ dir . '/ ' . $ file )) {
20
- $ invalidFiles = array_merge ($ invalidFiles , jsonStyleCheck ($ dir . '/ ' . $ file ));
38
+ $ invalidFiles = array_merge ($ invalidFiles , jsonStyleCheck ($ dir . '/ ' . $ file, $ mode ));
21
39
} else {
22
40
if (fnmatch ('*.json ' , $ dir . '/ ' . $ file )) {
23
- $ invalidFile = checkContentInFile ($ dir . '/ ' . $ file );
41
+ $ invalidFile = checkContentInFile ($ dir . '/ ' . $ file, $ mode );
24
42
if ($ invalidFile !== false ) {
25
43
$ invalidFiles [] = $ invalidFile ;
26
44
}
@@ -31,7 +49,7 @@ function jsonStyleCheck(string $dir)
31
49
return $ invalidFiles ;
32
50
}
33
51
34
- function checkContentInFile (string $ dir )
52
+ function checkContentInFile (string $ dir, string $ mode )
35
53
{
36
54
$ fileOriginal = file_get_contents ($ dir );
37
55
@@ -48,5 +66,10 @@ function checkContentInFile(string $dir)
48
66
if ($ fileOriginal == $ fileCompare ) {
49
67
return false ;
50
68
}
69
+
70
+ if ($ mode == 'fix ' ) {
71
+ file_put_contents ($ dir , $ fileCompare );
72
+ }
73
+
51
74
return $ dir ;
52
75
}
0 commit comments