Sun, 15 Oct 2023 19:20:41 +0200
add --init and --update options
fixes #308
fixes #307
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
1 | package de.unixwork.uwproj; |
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
2 | |
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
3 | import org.apache.velocity.VelocityContext; |
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
4 | import org.apache.velocity.app.VelocityEngine; |
42
becfbf7af928
add simple SLF4J provider - fixes #292
Mike Becker <universe@uap-core.de>
parents:
39
diff
changeset
|
5 | import org.slf4j.LoggerFactory; |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
6 | |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
7 | import java.io.*; |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
8 | import java.nio.file.*; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
9 | import java.nio.file.attribute.PosixFilePermission; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
10 | import java.nio.file.attribute.PosixFilePermissions; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
11 | import java.util.Arrays; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
12 | import java.util.Objects; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
13 | import java.util.Set; |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
14 | |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
15 | public class Main { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
16 | |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
17 | public final static String IN_FILE_DEFAULT = "make/project.xml"; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
18 | public final static String TPL_FILE_DEFAULT = "make/configure.vm"; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
19 | public final static String OUT_FILE_DEFAULT = "configure"; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
20 | |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
21 | static Project loadProjectFile(String fileName) { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
22 | try { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
23 | return new Project(new File(fileName)); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
24 | } catch (Exception e) { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
25 | throw new RuntimeException(e); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
26 | } |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
27 | } |
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
28 | |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
29 | static void writeConfigureScript(Writer out, String tplFileName, Project project) { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
30 | var context = new VelocityContext(); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
31 | context.put("targets", project.getTargets()); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
32 | context.put("namedDependencies", project.getNamedDependencies()); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
33 | context.put("dependencies", project.getDependencies()); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
34 | context.put("options", project.getOptions()); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
35 | context.put("features", project.getFeatures()); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
36 | context.put("project", project); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
37 | context.put("vars", project.getVars()); |
67
e43d30273f74
check compilers before any dependency checks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
42
diff
changeset
|
38 | context.put("languages", project.getLang()); |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
39 | new VelocityEngine().getTemplate(tplFileName).merge(context, out); |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
40 | } |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
41 | |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
42 | private static void abort() { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
43 | System.err.println("Abort."); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
44 | System.exit(1); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
45 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
46 | |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
47 | private static void printUsage() { |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
48 | System.err.println("Usage: uwproj [OPTIONS]"); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
49 | System.err.println(); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
50 | System.err.println("OPTIONS:"); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
51 | System.err.println(" -h --help Print help text and exit"); |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
52 | System.err.println(" --init Creates default files in directory 'make'"); |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
53 | System.err.println(" -o --output <file> Path to the output file"); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
54 | System.err.printf(" (default: %s)\n", OUT_FILE_DEFAULT); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
55 | System.err.println(" -p --project <file> Path to the project.xml file"); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
56 | System.err.printf(" (default: %s)\n", IN_FILE_DEFAULT); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
57 | System.err.println(" -t --template <file> Path to the velocity template"); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
58 | System.err.printf(" (default: %s)\n", TPL_FILE_DEFAULT); |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
59 | System.err.println(" --update Same as --init, but overwrites existing files"); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
60 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
61 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
62 | private static void extract(Path path) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
63 | try (final var res = Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream(path.toString()))) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
64 | Files.copy(res, path, StandardCopyOption.REPLACE_EXISTING); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
65 | } catch (Throwable t) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
66 | System.err.printf("Cannot extract '%s': %s\n", path, t.getMessage()); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
67 | abort(); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
68 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
69 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
70 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
71 | private static void init(boolean force) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
72 | final var files = new String[]{ |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
73 | "cc.mk", "gcc.mk", "clang.mk", "suncc.mk", |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
74 | "configure.vm", "toolchain.sh", "uwproj.xsd" |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
75 | }; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
76 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
77 | // (1) create the make dir if it does not exist |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
78 | final var make = Paths.get("make"); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
79 | if (Files.exists(make)) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
80 | if (!Files.isDirectory(make)) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
81 | System.err.println("A file with name 'make' already exists, but it's not a directory."); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
82 | abort(); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
83 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
84 | if (!force) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
85 | System.err.println("uwproj files already exist. You can use --update instead."); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
86 | abort(); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
87 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
88 | } else { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
89 | try { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
90 | Files.createDirectory(make); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
91 | } catch (Throwable t) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
92 | System.err.printf("Creating directory failed: %s\n", t.getMessage()); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
93 | abort(); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
94 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
95 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
96 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
97 | // (2) create project.xml ONLY if it does not exist |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
98 | final var project = make.resolve("project.xml"); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
99 | if (Files.notExists(project)) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
100 | extract(project); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
101 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
102 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
103 | // (3) create or update remaining uwproj files |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
104 | Arrays.stream(files).map(make::resolve).forEach(Main::extract); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
105 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
106 | // (4) stop |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
107 | System.out.printf("uwproj files %s.\n", force ? "updated" : "created"); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
108 | System.exit(0); |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
109 | } |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
110 | |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
111 | private static void checkOneMoreArg(int i, int length) { |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
112 | if (i+1 >= length) { |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
113 | printUsage(); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
114 | System.exit(1); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
115 | } |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
116 | } |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
117 | |
42
becfbf7af928
add simple SLF4J provider - fixes #292
Mike Becker <universe@uap-core.de>
parents:
39
diff
changeset
|
118 | public static void main(String[] args) { |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
119 | var inFileName = IN_FILE_DEFAULT; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
120 | var tplFileName = TPL_FILE_DEFAULT; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
121 | var outFileName = OUT_FILE_DEFAULT; |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
122 | boolean opsOptionsUsed = false; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
123 | boolean doInit = false; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
124 | boolean forceInit = false; |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
125 | |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
126 | for (int i = 0 ; i < args.length ; i++) { |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
127 | switch (args[i]) { |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
128 | case "-o": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
129 | case "--output": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
130 | checkOneMoreArg(i, args.length); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
131 | outFileName = args[++i]; |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
132 | opsOptionsUsed = true; |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
133 | break; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
134 | case "-p": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
135 | case "--project": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
136 | checkOneMoreArg(i, args.length); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
137 | inFileName = args[++i]; |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
138 | opsOptionsUsed = true; |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
139 | break; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
140 | |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
141 | case "-t": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
142 | case "--template": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
143 | checkOneMoreArg(i, args.length); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
144 | tplFileName = args[++i]; |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
145 | opsOptionsUsed = true; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
146 | break; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
147 | case "--init": |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
148 | doInit = true; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
149 | break; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
150 | case "--update": |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
151 | doInit = true; |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
152 | forceInit = true; |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
153 | break; |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
154 | case "--help": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
155 | case "-h": |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
156 | printUsage(); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
157 | System.exit(0); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
158 | default: |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
159 | printUsage(); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
160 | System.exit(1); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
161 | } |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
162 | } |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
163 | |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
164 | if (opsOptionsUsed && doInit) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
165 | System.err.println("Cannot use --init or --update with other options."); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
166 | abort(); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
167 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
168 | |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
169 | if (doInit) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
170 | init(forceInit); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
171 | } |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
172 | |
81
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
173 | System.out.println("In: " + inFileName); |
ea79a383ad75
add command line options - fixes #303
Mike Becker <universe@uap-core.de>
parents:
67
diff
changeset
|
174 | System.out.println("Tpl: " + tplFileName); |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
175 | |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
176 | try (var out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFileName)))) { |
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
177 | writeConfigureScript(out, tplFileName, loadProjectFile(inFileName)); |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
178 | } catch (Throwable t) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
179 | System.err.printf("Unexpected error: %s\n", t.getMessage()); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
180 | abort(); |
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
181 | } |
39
3ca85da78515
add RegressionTest - fixes #264
Mike Becker <universe@uap-core.de>
parents:
7
diff
changeset
|
182 | |
42
becfbf7af928
add simple SLF4J provider - fixes #292
Mike Becker <universe@uap-core.de>
parents:
39
diff
changeset
|
183 | System.out.println("Out: " + outFileName); |
90
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
184 | try { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
185 | Files.setPosixFilePermissions(Path.of(outFileName), PosixFilePermissions.fromString("rwxr-xr-x")); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
186 | } catch (Throwable t) { |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
187 | System.err.printf("WARN: Setting file permissions failed: %s\n", t.getMessage()); |
a13789dd1cfb
add --init and --update options
Mike Becker <universe@uap-core.de>
parents:
81
diff
changeset
|
188 | } |
0
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
189 | } |
38775db5fdf5
add existing source
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
190 | } |