Runner CLI Script

This commit is contained in:
Brandon Rozek 2023-03-29 21:17:09 -04:00
parent 395872a4d4
commit d6bc88566f
No known key found for this signature in database
GPG key ID: 26E457DA82C9F480
3 changed files with 74 additions and 1 deletions

8
run_spectra.sh Executable file
View file

@ -0,0 +1,8 @@
#!/bin/sh
# TODO: Argument check and show usage
mvn -q exec:java -Dexec.mainClass="com.naveensundarg.planner.utils.Runner" -Dexec.args="$1"
#mvn exec:java -Dexec.mainClass="com.naveensundarg.planner.utils.Runner" -Dexec.args="$PWD/src/main/resources/com/naveensundarg/planner/problems/ai2thor/FloorPlan28.clj"

View file

@ -89,7 +89,7 @@
(defun setup-snark (&key (time-limit 5) (verbose nil)) (defun setup-snark (&key (time-limit 5) (verbose nil))
(snark:initialize :verbose verbose) (snark:initialize :verbose verbose)
;; (if (not verbose) (snark-deverbose) ) (if (not verbose) (snark-deverbose) )
(snark:run-time-limit 5) (snark:run-time-limit 5)
(snark:assert-supported t) (snark:assert-supported t)
(snark:assume-supported t) (snark:assume-supported t)

View file

@ -0,0 +1,65 @@
package com.naveensundarg.planner.utils;
import com.naveensundarg.planner.BreadthFirstPlanner;
import com.naveensundarg.planner.Plan;
import com.naveensundarg.planner.Planner;
import com.naveensundarg.shadow.prover.utils.Reader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.*;
public final class Runner {
public static void main(String[] args) {
System.out.println("--------------- Starting Spectra --------------- ");
// Grab filename from argument list
if (args.length < 1) {
System.out.println("Need to include filename with planning problem and description.");
return;
}
String fileName = args[0];
// Read File
FileInputStream fileStream;
try {
fileStream = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
// Parse File
List<PlanningProblem> planningProblemList;
try {
planningProblemList = PlanningProblem.readFromFile(fileStream);
} catch (Reader.ParsingException e) {
e.printStackTrace();
return;
}
Planner breadthFirstPlanner = new BreadthFirstPlanner();
for (PlanningProblem planningProblem : planningProblemList) {
Optional<Set<Plan>> optionalPlans = breadthFirstPlanner.plan(
planningProblem.getBackground(),
planningProblem.getActions(),
planningProblem.getStart(),
planningProblem.getGoal());
if(optionalPlans.isPresent()) {
System.out.println(optionalPlans.get().toString());
}
else {
System.out.println("FAILED");
}
}
}
}