From 60ca7b1ef93b5197e8611d5da78b1d6b22fef69f Mon Sep 17 00:00:00 2001 From: Meng Luan Date: Sat, 7 Feb 2015 01:24:33 -0400 Subject: [PATCH] add option -w to prevent overwriting all the time --- .../java/org/ruleml/translation/ruleml2tptp/Main.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/ruleml/translation/ruleml2tptp/Main.java b/src/main/java/org/ruleml/translation/ruleml2tptp/Main.java index 2e4e4f7..d623b44 100644 --- a/src/main/java/org/ruleml/translation/ruleml2tptp/Main.java +++ b/src/main/java/org/ruleml/translation/ruleml2tptp/Main.java @@ -6,9 +6,9 @@ import org.kohsuke.args4j.Option; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; +import java.io.IOException; import java.io.OutputStream; import java.io.StringReader; import java.io.StringWriter; @@ -52,6 +52,9 @@ public class Main { @Option(name="-f",aliases={"-transformer-factory"},metaVar="",usage="use given factory class") private String transFactoryClass; + @Option(name="-w",aliases={"-overwrite"},usage="overwrite the output file") + private boolean overwrite; + @Option(name="-r",aliases={"-recursive"},hidden=true,usage="traverse the directory tree for input files") private boolean recursive; @@ -106,6 +109,10 @@ private void run() { final Translator translator = new Translator(transFactory); translator.loadTemplates(); try { + if (output != null && !overwrite && !output.createNewFile()) { + System.err.println("The output file has existed. Use option \"-w\" to overwrite it."); + System.exit(EC_GENERAL); + } if (input == null) { if (output == null) { translate(translator, System.in, System.out); @@ -122,7 +129,7 @@ private void run() { System.err.println(ex.getMessageAndLocation()); System.err.println(); System.exit(EC_TRANSFORM); - } catch (FileNotFoundException ex) { + } catch (IOException ex) { System.err.println("Failed to operate file: " + ex.getLocalizedMessage()); System.err.println(); System.exit(EC_TRANSFORM);