-
-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathAnalyzerCli.java
More file actions
42 lines (34 loc) · 1.25 KB
/
AnalyzerCli.java
File metadata and controls
42 lines (34 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package analyzer;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
/**
* The main entrypoint to the Java analyzer from the command-line.
* The CLI expects three arguments and is used like this:
*
* <pre>
* java -jar java-analyzer.jar exercise-slug /path/to/input /path/to/output
* </pre>
*/
public class AnalyzerCli {
private static Path validateDirectory(String directory) {
var file = new File(directory);
if (!file.exists() || !file.isDirectory()) {
throw new IllegalArgumentException("Not a valid directory: " + directory);
}
return file.toPath();
}
public static void main(String... args) throws IOException {
if (args.length < 3) {
System.err.println("Invalid arguments. Usage: java-analyzer <exercise slug> <exercise directory> <output directory>");
System.exit(-1);
}
var slug = args[0];
var inputDirectory = validateDirectory(args[1]);
var outputDirectory = validateDirectory(args[2]);
var outputWriter = new OutputWriter(outputDirectory);
var solution = new SubmittedSolution(slug, inputDirectory);
var output = AnalyzerRoot.analyze(solution);
outputWriter.write(output);
}
}