author | wenzelm |
Sat, 24 Jul 2021 19:55:10 +0200 | |
changeset 74061 | 203dfa8bc0fc |
parent 74031 | 09821ca262d3 |
child 74068 | 62e4ec8cff38 |
permissions | -rw-r--r-- |
74031 | 1 |
/* Title: Tools/Setup/src/Setup.java |
73677
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
2 |
Author: Makarius |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
3 |
|
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
4 |
Isabelle setup tool: bootstrap from generic Java environment. |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
5 |
*/ |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
6 |
|
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
7 |
package isabelle.setup; |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
8 |
|
73962 | 9 |
|
73677
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
10 |
class Setup |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
11 |
{ |
73962 | 12 |
private static void echo(String msg) |
13 |
{ |
|
73985
eb7112f467a8
more portable: avoid Windows CRLF in classpath output;
wenzelm
parents:
73963
diff
changeset
|
14 |
System.out.print(msg + "\n"); |
73963 | 15 |
} |
16 |
private static void echo_err(String msg) |
|
17 |
{ |
|
73985
eb7112f467a8
more portable: avoid Windows CRLF in classpath output;
wenzelm
parents:
73963
diff
changeset
|
18 |
System.err.print(msg + "\n"); |
73962 | 19 |
} |
20 |
private static void fail(String msg) |
|
21 |
{ |
|
73963 | 22 |
echo_err(msg); |
73962 | 23 |
System.exit(2); |
24 |
} |
|
25 |
||
26 |
private static void check_args(boolean b) |
|
27 |
{ |
|
28 |
if (!b) { fail("Bad command-line arguments"); } |
|
29 |
} |
|
30 |
||
73677
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
31 |
public static void main(String[] args) |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
32 |
{ |
73962 | 33 |
int n = args.length; |
34 |
check_args(n > 0); |
|
35 |
||
36 |
String op = args[0]; |
|
37 |
try { |
|
38 |
switch (op) { |
|
39 |
case "build": |
|
40 |
check_args(n == 1); |
|
74061
203dfa8bc0fc
clarified compiler output: allow multithreaded execution;
wenzelm
parents:
74031
diff
changeset
|
41 |
Build.build_components(System.err, false); |
73962 | 42 |
break; |
43 |
case "build_fresh": |
|
44 |
check_args(n == 1); |
|
74061
203dfa8bc0fc
clarified compiler output: allow multithreaded execution;
wenzelm
parents:
74031
diff
changeset
|
45 |
Build.build_components(System.err, true); |
73962 | 46 |
break; |
47 |
case "classpath": |
|
48 |
check_args(n == 1); |
|
49 |
echo(Environment.join_standard_paths(Build.classpath())); |
|
50 |
break; |
|
51 |
case "services": |
|
52 |
check_args(n == 1); |
|
53 |
for (String s : Build.services()) { echo(s); } |
|
54 |
break; |
|
55 |
default: |
|
74029
0701ff55780d
clarified build_props: empty module means no build;
wenzelm
parents:
73985
diff
changeset
|
56 |
fail("Bad setup operation " + Library.quote(op)); |
73962 | 57 |
break; |
58 |
} |
|
59 |
} |
|
73963 | 60 |
catch (Throwable exn) { |
61 |
echo_err(Exn.print_error(exn)); |
|
62 |
System.exit(Exn.return_code(exn, 2)); |
|
73962 | 63 |
} |
73677
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
64 |
} |
73c50ce808ed
basic setup of Isabelle setup tool --- pure Java, no dependencies;
wenzelm
parents:
diff
changeset
|
65 |
} |