1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 | package Torello.Java.Build;
import static Torello.Java.C.*;
import Torello.Java.StringParse;
import Torello.Java.OSResponse;
import java.io.IOException;
/**
* If you are writing a personalized instance of the {@code FunctionalInterface} named
* {@link UpgradeProcessor}, then there is some possibility that you might need to use these
* two helper functions.
*/
@Torello.JavaDoc.StaticFunctional
public class Util
{
// Completely irrelevant, and the 'private' modifier keeps it off of JavaDoc
private Util() { }
/**
* Simple Method for exiting with a consistent error message.
*
* <BR /><BR /><B CLASS=JDDescLabel>Terminates the JVM</B>
*
* <BR />This method invokes the Java-Command {@code 'System.exit'}
*
* @param cmd The Command that was executed, leading to the error.
*/
public static void ERROR_EXIT(final String cmd)
{
final String s =
BBLUE_BKGND + ' ' + RESET + " There was an error, and build is halting: " +
BRED + cmd + RESET;
final int len = s.length() - (BBLUE_BKGND + RESET + BRED + RESET).length();
System.err.println(
Printing.ERROR_EXIT_LINE + '\n' +
s + StringParse.nChars(' ', Printing.ERROR_EXIT_LEN - len - 1) +
BBLUE_BKGND + ' ' + RESET + '\n' +
Printing.ERROR_EXIT_LINE + '\n'
);
System.exit(0);
}
/**
* Checks a Command's Response for errors. If Errors have occured, the response that was
* returned is printed, and an {@code Error} is thrown.
*
* @param osr The Command's Response
* @throws BuildError If an error has occured in executing an Operating System call.
*/
public static void HALT_ON_ERROR(final OSResponse osr)
{
if ( (osr.response != 0)
// NOTE: You cannot do this check, because 'gsutil' literally writes all of its
// output to standard-error. It's quite madening.
// || ((osr.stdErr != null) && (osr.stdErr.length() > 0))
)
{
System.out.println('\n' + osr.toString() + '\n');
throw new BuildError("OSResponse Had Errors, Look at StackTrace to See Where !");
}
}
}
|