@@ -5,9 +5,14 @@ import org.aim42.htmlsanitycheck.Configuration
5
5
import org.slf4j.Logger
6
6
import org.slf4j.LoggerFactory
7
7
import picocli.CommandLine
8
+ import picocli.CommandLine.Parameters
8
9
import picocli.CommandLine.Command
9
10
import picocli.CommandLine.Option
10
11
12
+ import java.nio.file.Files
13
+ import java.nio.file.Path
14
+ import java.nio.file.Paths
15
+
11
16
// see end-of-file for license information
12
17
13
18
@Command (name = " hsc" , mixinStandardHelpOptions = true , version = " hsc 2.0.0" ,
@@ -23,30 +28,39 @@ class Main implements Runnable {
23
28
// "-r resultsDir""")
24
29
// }
25
30
26
- @Option (names = [" -s" , " --sourceDir" ], description = " Source Directory" )
27
- String sourceDirectoryName
28
-
29
- @Option (names = [" -f" , " --sourceFile" ], description = " Source Directory" , arity = " *" )
30
- String [] sourceFileNames
31
-
32
31
@Option (names = [" -r" , " --resultsDir" ], description = " Results Directory" )
33
32
String resultsDirectoryName = " /tmp/results"
34
33
34
+ @Parameters (arity = " 1..*" , description = " at least one File" )
35
+ File [] files
36
+
35
37
static void main (String [] args ) {
36
38
Main app = new Main ()
37
39
CommandLine cmd = new CommandLine (app)
38
40
cmd. execute(args)
39
41
}
40
42
43
+ private List<File > findFiles (File directory ) throws IOException {
44
+ List<File > files = new ArrayList<> ()
45
+ Files . walk(Paths . get(directory. getPath()))
46
+ .filter(Files ::isRegularFile)
47
+ .filter(path -> path. getFileName(). endsWith(" .html" ))
48
+ .forEach(files ::add)
49
+ return files
50
+ }
51
+
41
52
void run () {
42
53
var configuration = new Configuration ()
43
54
44
55
var resultsDirectory = new File (resultsDirectoryName)
45
56
46
- configuration. addConfigurationItem(Configuration.ITEM_NAME_sourceDir , new File (sourceDirectoryName))
47
57
configuration. addConfigurationItem(Configuration.ITEM_NAME_sourceDocuments ,
48
- sourceFileNames. collect {filename ->
49
- return new File (filename)
58
+ files. collect { file ->
59
+ if (file. isDirectory()) {
60
+ return findFiles(file)
61
+ } else {
62
+ return new File (file)
63
+ }
50
64
}
51
65
)
52
66
configuration. addConfigurationItem((Configuration.ITEM_NAME_checkingResultsDir ), resultsDirectory)
0 commit comments