-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathversion.java
More file actions
executable file
·59 lines (54 loc) · 2.43 KB
/
version.java
File metadata and controls
executable file
·59 lines (54 loc) · 2.43 KB
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
/*
* Copyright 2023 Red Hat
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA 25
void main(String... args) throws IOException {
if (args.length != 3) {
IO.println("Wrong number of arguments: Provided " + args.length + ", required 3");
IO.println("Use version.java <basedir> <patternfly.java.version> <patternfly-version>");
System.exit(1);
}
String basedir = args[0];
String patternFlyJavaVersion = args[1];
String patternFlyVersion = args[2];
int dot = patternFlyVersion.indexOf('.');
String patternFlyMajor = "v" + (dot >= 0 ? patternFlyVersion.substring(0, dot) : patternFlyVersion);
String packageName = "org.patternfly.core";
String className = "Version";
String target = "src/main/java";
Path targetPath = Path.of(basedir, target, packageName.replace('.', '/'));
Files.createDirectories(targetPath);
Path javaSource = targetPath.resolve(className + ".java");
Files.deleteIfExists(javaSource);
String content = String.join("\n",
"package " + packageName + ";",
"",
"import javax.annotation.processing.Generated;",
"",
"/*",
" * WARNING! This class is generated. Do not modify.",
" */",
"@Generated(\"version.java\")",
"public interface " + className + " {",
"",
" String PATTERN_FLY_JAVA_VERSION = \"" + patternFlyJavaVersion + "\";",
" String PATTERN_FLY_VERSION = \"" + patternFlyVersion + "\";",
" String PATTERN_FLY_MAJOR_VERSION = \"" + patternFlyMajor + "\";",
"}",
"");
Files.writeString(javaSource, content, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
IO.println("Generated Version.java using " + patternFlyJavaVersion + ", " + patternFlyVersion + ", " + patternFlyMajor);
}