diff --git a/pom.xml b/pom.xml
index 26abf17..0c5b944 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,11 @@
poi-ooxml
3.17
+
+ net.sf.jopt-simple
+ jopt-simple
+ 6.0-alpha-2
+
diff --git a/src/main/java/ru/dmitriymx/corrector1s/Main.java b/src/main/java/ru/dmitriymx/corrector1s/Main.java
index 652446f..7652696 100644
--- a/src/main/java/ru/dmitriymx/corrector1s/Main.java
+++ b/src/main/java/ru/dmitriymx/corrector1s/Main.java
@@ -1,26 +1,78 @@
package ru.dmitriymx.corrector1s;
+import joptsimple.OptionParser;
+import joptsimple.OptionSet;
import lombok.extern.slf4j.Slf4j;
import ru.dmitriymx.corrector1s.gui.MainApp;
import java.io.File;
+import java.nio.file.Files;
+import java.util.Arrays;
import java.util.List;
@Slf4j
public class Main {
+ public static final String VERSION = "1.0";
+
+ private static OptionParser buildOptionParser() {
+ final OptionParser optionParser = new OptionParser();
+
+ optionParser.acceptsAll(Arrays.asList("s", "source"), "Source Excel file")
+ .withRequiredArg()
+ .ofType(File.class)
+ .required();
+ optionParser.acceptsAll(Arrays.asList("t", "target"), "Target Excel file (default: target = source)")
+ .withRequiredArg()
+ .ofType(File.class);
+ optionParser.acceptsAll(Arrays.asList("f", "fee"), "Honorarium (in percentages)")
+ .withRequiredArg()
+ .ofType(Double.class)
+ .defaultsTo(9.0d);
+ optionParser.acceptsAll(Arrays.asList("h", "help"), "Help page. Display this message")
+ .forHelp();
+ optionParser.acceptsAll(Arrays.asList("v", "version"), "Version")
+ .forHelp();
+
+ return optionParser;
+ }
+
public static void main(String[] args) throws Exception {
if (args.length == 0) {
MainApp.main(args);
} else {
- File file = new File(args[0]);
- File file1 = new File(args[1]);
+ OptionParser parser = buildOptionParser();
+ OptionSet optionSet;
+ try {
+ optionSet = parser.parse(args);
+ } catch (joptsimple.OptionException e) {
+ if (e.getMessage().contains("Missing")) {
+ log.error(e.getMessage());
+ } else {
+ log.error("", e);
+ }
+ return;
+ }
- ExcelReader excelReader = new ExcelReader(file);
- List data = excelReader.getData();
- excelReader.correctStyle();
- excelReader.correctData(data);
- excelReader.insertNewCols();
- excelReader.save(file1);
+ if (optionSet.has("help")) {
+ System.out.printf("Version: %s\n", VERSION);
+ parser.printHelpOn(System.out);
+ return;
+ } else if (optionSet.has("version")) {
+ System.out.printf("Version: %s\n", VERSION);
+ return;
+ }
+
+ File sourceFile, targetFile;
+ sourceFile = (File) optionSet.valueOf("source");
+ if (optionSet.has("target")) {
+ targetFile = (File) optionSet.valueOf("target");
+ } else {
+ targetFile = sourceFile;
+ }
+
+ log.debug("Source file: {} (exists: {})", sourceFile.getAbsolutePath(), Files.exists(sourceFile.toPath()));
+ log.debug("Target file: {}", targetFile.getAbsolutePath());
+ log.debug("Honorarium: {}%", optionSet.valueOf("fee"));
}
}
}