Skip to content

Commit 25a147c

Browse files
committed
WIP Switch to CLI parameters (instead of options)
1 parent 4a8eb7a commit 25a147c

File tree

2 files changed

+30
-16
lines changed
  • htmlSanityCheck-cli/src/main/groovy/org/aim42/htmlsanitycheck/cli
  • htmlSanityCheck-core/src/main/groovy/org/aim42/htmlsanitycheck

2 files changed

+30
-16
lines changed

htmlSanityCheck-cli/src/main/groovy/org/aim42/htmlsanitycheck/cli/Main.groovy

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ import org.aim42.htmlsanitycheck.Configuration
55
import org.slf4j.Logger
66
import org.slf4j.LoggerFactory
77
import picocli.CommandLine
8+
import picocli.CommandLine.Parameters
89
import picocli.CommandLine.Command
910
import picocli.CommandLine.Option
1011

12+
import java.nio.file.Files
13+
import java.nio.file.Path
14+
import java.nio.file.Paths
15+
1116
// see end-of-file for license information
1217

1318
@Command(name = "hsc", mixinStandardHelpOptions = true, version = "hsc 2.0.0",
@@ -23,30 +28,39 @@ class Main implements Runnable {
2328
// "-r resultsDir""")
2429
// }
2530

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-
3231
@Option(names = ["-r", "--resultsDir"], description = "Results Directory")
3332
String resultsDirectoryName = "/tmp/results"
3433

34+
@Parameters(arity = "1..*", description = "at least one File")
35+
File[] files
36+
3537
static void main(String[] args) {
3638
Main app = new Main()
3739
CommandLine cmd = new CommandLine(app)
3840
cmd.execute(args)
3941
}
4042

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+
4152
void run() {
4253
var configuration = new Configuration()
4354

4455
var resultsDirectory = new File(resultsDirectoryName)
4556

46-
configuration.addConfigurationItem(Configuration.ITEM_NAME_sourceDir, new File(sourceDirectoryName))
4757
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+
}
5064
}
5165
)
5266
configuration.addConfigurationItem((Configuration.ITEM_NAME_checkingResultsDir), resultsDirectory)

htmlSanityCheck-core/src/main/groovy/org/aim42/htmlsanitycheck/Configuration.groovy

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,13 @@ class Configuration {
228228
Set<String> srcDocs = getConfigItemByName(Configuration.ITEM_NAME_sourceDocuments)
229229

230230
// cannot check if source director is null (= unspecified)
231-
if ((srcDir == null)) {
232-
throw new MisconfigurationException("source directory must not be null")
233-
}
234-
235-
if ((!srcDir.exists())) {
236-
throw new MisconfigurationException("given sourceDir $srcDir does not exist.")
237-
}
231+
// if ((srcDir == null)) {
232+
// throw new MisconfigurationException("source directory must not be null")
233+
// }
234+
//
235+
// if ((!srcDir.exists())) {
236+
// throw new MisconfigurationException("given sourceDir $srcDir does not exist.")
237+
// }
238238

239239
// cannot check if both input params are null
240240
if (srcDocs == null) {

0 commit comments

Comments
 (0)