11package liquidjava .api ;
22
33import java .io .File ;
4-
4+ import java .util .Arrays ;
5+ import java .util .List ;
56import liquidjava .errors .ErrorEmitter ;
67import liquidjava .processor .RefinementProcessor ;
78import spoon .Launcher ;
1213
1314public class CommandLineLauncher {
1415 public static void main (String [] args ) {
15- String allPath = "./liquidjava-example/src/main/java/test/currentlyTesting" ;
16-
1716 // String allPath = "C://Regen/test-projects/src/Main.java";
1817 // In eclipse only needed this:"../liquidjava-example/src/main/java/"
1918 // In VSCode needs:
2019 // "../liquidjava/liquidjava-umbrella/liquidjava-example/src/main/java/liquidjava/test/project";
21- String path = args .length == 0 ? allPath : args [0 ];
22- ErrorEmitter ee = launch (path );
20+
21+ if (args .length == 0 ) {
22+ System .out .println ("No input files or directories provided" );
23+ System .out .println ("\n Usage: ./liquidjava <...paths>" );
24+ System .out .println (" <...paths>: Paths to files or directories to be verified by LiquidJava" );
25+ System .out .println (
26+ "\n Example: ./liquidjava liquidjava-example/src/main/java/test/currentlyTesting liquidjava-example/src/main/java/testingInProgress/Account.java" );
27+ return ;
28+ }
29+ List <String > paths = Arrays .asList (args );
30+ ErrorEmitter ee = launch (paths .toArray (new String [0 ]));
2331 System .out .println (ee .foundError () ? (ee .getFullMessage ()) : ("Correct! Passed Verification." ));
2432 }
2533
26- public static ErrorEmitter launchTest (String path ) {
27- ErrorEmitter ee = launch (path );
28- return ee ;
29- }
34+ public static ErrorEmitter launch (String ... paths ) {
35+ System .out .println ("Running LiquidJava on: " + Arrays .toString (paths ).replaceAll ("[\\ [\\ ]]" , "" ));
3036
31- public static ErrorEmitter launch (String path ) {
32- System .out .println ("Running LiquidJava on: " + path );
3337 ErrorEmitter ee = new ErrorEmitter ();
34-
35- // check if the path exists
36- File f = new File (path );
37- if (!f .exists ()) {
38- ee .addError ("Path not found" , "The path " + path + " does not exist" , 1 );
39- return ee ;
40- }
41-
4238 Launcher launcher = new Launcher ();
43- launcher .addInputResource (path );
39+ for (String path : paths ) {
40+ if (!new File (path ).exists ()) {
41+ ee .addError ("Path not found" , "The path " + path + " does not exist" , 1 );
42+ return ee ;
43+ }
44+ launcher .addInputResource (path );
45+ }
4446 launcher .getEnvironment ().setNoClasspath (true );
4547
4648 // Get the current classpath from the system
@@ -51,12 +53,10 @@ public static ErrorEmitter launch(String path) {
5153 // launcher.getEnvironment().setSourceClasspath(
5254 // "lib1.jar:lib2.jar".split(":"));
5355 launcher .getEnvironment ().setComplianceLevel (8 );
54-
5556 launcher .run ();
5657
5758 final Factory factory = launcher .getFactory ();
5859 final ProcessingManager processingManager = new QueueProcessingManager (factory );
59-
6060 final RefinementProcessor processor = new RefinementProcessor (factory , ee );
6161 processingManager .addProcessor (processor );
6262
0 commit comments