1
0
mirror of https://github.com/octoleo/plantuml.git synced 2024-12-22 10:59:01 +00:00

fix: improve return code management

This commit is contained in:
Arnaud Roques 2023-03-16 21:25:46 +01:00
parent 9a3c27eebf
commit 0f9f96dade
3 changed files with 39 additions and 40 deletions

View File

@ -62,13 +62,12 @@ public class OptionPrint {
static public void printTestDot() throws InterruptedException {
final List<String> result = new ArrayList<>();
final int errorCode = GraphvizUtils.addDotStatus(result, false);
for (String s : result) {
if (errorCode == 0) {
for (String s : result)
if (errorCode == 0)
System.out.println(s);
} else {
else
System.err.println(s);
}
}
exit(errorCode);
}
@ -169,35 +168,34 @@ public class OptionPrint {
}
static private void exit(int errorCode) throws InterruptedException {
if (OptionFlags.getInstance().isSystemExit() || errorCode != 0) {
if (OptionFlags.getInstance().isSystemExit() || errorCode != 0)
System.exit(errorCode);
}
throw new InterruptedException("exit");
}
public static void printLicense() throws InterruptedException {
for (String s : License.getCurrent().getTextFull()) {
for (String s : License.getCurrent().getTextFull())
System.out.println(s);
}
exit(0);
System.exit(0);
}
public static void printVersion() throws InterruptedException {
System.out.println(Version.fullDescription());
System.out.println("(" + License.getCurrent() + " source distribution)");
for (String v : interestingProperties()) {
for (String v : interestingProperties())
System.out.println(v);
}
for (String v : interestingValues()) {
for (String v : interestingValues())
System.out.println(v);
}
System.out.println();
final List<String> result = new ArrayList<>();
final int errorCode = GraphvizUtils.addDotStatus(result, false);
for (String s : result) {
for (String s : result)
System.out.println(s);
}
exit(errorCode);
System.exit(0);
}
public static Collection<String> interestingProperties() {

View File

@ -87,14 +87,10 @@ public class Run {
throws NoPlantumlCompressionException, IOException, InterruptedException {
System.setProperty("log4j.debug", "false");
final long start = System.currentTimeMillis();
if (argsArray.length > 0 && argsArray[0].equalsIgnoreCase("-headless")) {
if (argsArray.length > 0 && argsArray[0].equalsIgnoreCase("-headless"))
System.setProperty("java.awt.headless", "true");
}
// if (argsArray.length > 0 && argsArray[0].equalsIgnoreCase("--de")) {
// debugGantt();
// return;
// }
saveCommandLine(argsArray);
final Option option = new Option(argsArray);
ProgressBar.setEnable(option.isTextProgressBar());
if (OptionFlags.getInstance().isClipboardLoop()) {
@ -156,9 +152,9 @@ public class Run {
}
forceOpenJdkResourceLoad();
if (option.getPreprocessorOutputMode() == OptionPreprocOutputMode.CYPHER) {
if (option.getPreprocessorOutputMode() == OptionPreprocOutputMode.CYPHER)
cypher = new LanguageDescriptor().getCypher();
}
final ErrorStatus error = ErrorStatus.init();
boolean forceQuit = false;
if (OptionFlags.getInstance().isGui()) {
@ -170,9 +166,9 @@ public class Run {
File dir = null;
if (list.size() == 1) {
final File f = new File(list.get(0));
if (f.exists() && f.isDirectory()) {
if (f.exists() && f.isDirectory())
dir = f;
}
}
try {
new MainWindow(option, dir);
@ -187,9 +183,9 @@ public class Run {
managePipe(option, error);
forceQuit = true;
} else if (option.isFailfast2()) {
if (option.isSplash()) {
if (option.isSplash())
Splash.createSplash();
}
final long start2 = System.currentTimeMillis();
option.setCheckOnly(true);
manageAllFiles(option, error);
@ -198,14 +194,14 @@ public class Run {
final double duration = (System.currentTimeMillis() - start2) / 1000.0;
Log.error("Check Duration = " + duration + " seconds");
}
if (error.hasError() == false) {
if (error.hasError() == false)
manageAllFiles(option, error);
}
forceQuit = true;
} else {
if (option.isSplash()) {
if (option.isSplash())
Splash.createSplash();
}
manageAllFiles(option, error);
forceQuit = true;
}
@ -216,16 +212,15 @@ public class Run {
}
if (OptionFlags.getInstance().isGui() == false) {
if (error.hasError() || error.isNoData()) {
if (error.hasError() || error.isNoData())
option.getStdrpt().finalMessage(error);
}
if (error.hasError()) {
System.exit(error.getExitCode());
}
if (forceQuit && OptionFlags.getInstance().isSystemExit()) {
if (error.hasError())
System.exit(error.getExitCode());
if (forceQuit && OptionFlags.getInstance().isSystemExit())
System.exit(0);
}
}
}

View File

@ -159,6 +159,12 @@ final public class UmlSource {
// return Collections.unmodifiableCollection(rawSource).iterator();
// }
@Deprecated()
public String getPlainString() {
return getPlainString("\n");
}
/**
* Return the source as a single String.
*