Add argument parsing
This commit is contained in:
parent
5a3df459f9
commit
591d431226
@ -1,6 +1,6 @@
|
||||
$Env:JAVA_HOME = "C:\Users\nathanm\Downloads\openjdk-23.0.1_windows-x64_bin\jdk-23.0.1"
|
||||
$Env:PATH = "C:\Users\nathanm\Downloads\openjdk-23.0.1_windows-x64_bin\jdk-23.0.1\bin;$($Env:PATH)"
|
||||
$Env:PATH_TO_FX="C:\Users\nathanm\Downloads\openjfx-23.0.1_windows-x64_bin-sdk\javafx-sdk-23.0.1\lib"
|
||||
javac --module-path "$Env:PATH_TO_FX;P:\personal_root\projects\number-station\lib" --add-modules javafx.controls,javafx.fxml,com.fasterxml.jackson.annotation,com.fasterxml.jackson.core,com.fasterxml.jackson.dataformat.xml,com.fasterxml.jackson.datatype.jsr310 .\name\nathanmcrae\numbersstation\*.java -d out
|
||||
javac --module-path "$Env:PATH_TO_FX;P:\personal_root\projects\number-station\lib" --add-modules javafx.controls,javafx.fxml,com.fasterxml.jackson.annotation,com.fasterxml.jackson.core,com.fasterxml.jackson.dataformat.xml,com.fasterxml.jackson.datatype.jsr310,org.apache.commons.cli .\name\nathanmcrae\numbersstation\*.java -d out
|
||||
cp name/nathanmcrae/numbersstation/*.fxml out/name/nathanmcrae/numbersstation
|
||||
java --module-path "$Env:PATH_TO_FX;P:\personal_root\projects\number-station\lib" --add-modules javafx.controls,javafx.fxml,com.fasterxml.jackson.annotation,com.fasterxml.jackson.core,com.fasterxml.jackson.dataformat.xml,com.fasterxml.jackson.datatype.jsr310 -cp out name.nathanmcrae.numbersstation.Main
|
||||
java --module-path "$Env:PATH_TO_FX;P:\personal_root\projects\number-station\lib" --add-modules javafx.controls,javafx.fxml,com.fasterxml.jackson.annotation,com.fasterxml.jackson.core,com.fasterxml.jackson.dataformat.xml,com.fasterxml.jackson.datatype.jsr310,org.apache.commons.cli -cp out name.nathanmcrae.numbersstation.Main @args
|
||||
|
@ -13,10 +13,12 @@ import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.stage.Stage;
|
||||
import org.apache.commons.cli.*;
|
||||
|
||||
public class Main extends Application {
|
||||
private static final Logger logger = Logger.getLogger(Main.class.getName());
|
||||
|
||||
// TODO: get git info
|
||||
private static final String VERSION = "0.0.1";
|
||||
private static Path statePath = null;
|
||||
|
||||
public Path getStatePath() {
|
||||
@ -59,7 +61,49 @@ public class Main extends Application {
|
||||
}
|
||||
}
|
||||
|
||||
private static void parseArguments(String[] args) {
|
||||
Options options = new Options();
|
||||
|
||||
Option help = new Option("h", "help", false, "Show help");
|
||||
options.addOption(help);
|
||||
|
||||
Option version = new Option("v", "version", false, "Show version");
|
||||
options.addOption(version);
|
||||
|
||||
Option station = new Option("s", "station", true, "Specify station name");
|
||||
station.setArgName("station-name");
|
||||
options.addOption(station);
|
||||
|
||||
CommandLineParser parser = new DefaultParser();
|
||||
HelpFormatter formatter = new HelpFormatter();
|
||||
String stationName = null;
|
||||
|
||||
try {
|
||||
CommandLine cmd = parser.parse(options, args);
|
||||
|
||||
if (cmd.hasOption("help")) {
|
||||
formatter.printHelp("numbers-station", options);
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
if (cmd.hasOption("version")) {
|
||||
System.out.println("Numbers Station version " + VERSION);
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
if (cmd.hasOption("station")) {
|
||||
stationName = cmd.getOptionValue("station");
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
System.out.println(e.getMessage());
|
||||
formatter.printHelp("numbers-station", options);
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
parseArguments(args);
|
||||
|
||||
Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> {
|
||||
logger.log(Level.SEVERE, "Unhandled exception caught", throwable);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user