You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2025/11/11 16:28:59 UTC
(maven-sources) 01/02: add script to generate gh.md
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch gh
in repository https://gitbox.apache.org/repos/asf/maven-sources.git
commit 1f7958a023b0b062e004ae8e1932ba860aefccc7
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Tue Nov 11 17:27:44 2025 +0100
add script to generate gh.md
---
update_gh.java | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/update_gh.java b/update_gh.java
new file mode 100755
index 0000000..71daf2d
--- /dev/null
+++ b/update_gh.java
@@ -0,0 +1,71 @@
+///usr/bin/env jbang "$0" "$@" ; exit $?
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.stream.Collectors;
+
+public class update_gh {
+ private static class Project {
+ final String org;
+ final String group;
+ final String name;
+ final String repo;
+ final String branch;
+ Project(String org, String group, String name, String repo, String branch) {
+ this.org = org;
+ this.group = group;
+ this.name = name;
+ this.repo = repo;
+ this.branch = branch;
+ }
+ }
+
+ public static void main(String... args) throws Exception {
+ String group = "";
+ for(Project p: Files.readAllLines(Path.of("default.xml")).stream()
+ .filter(s -> s.contains("project path='"))
+ .map(s -> toProject(s))
+ .collect(Collectors.toList())) {
+ if (!group.equals(p.group)) {
+ System.out.println();
+ System.out.println("# " + p.group);
+ group = p.group;
+ }
+ System.out.println("- " + p.name + " " + p.org + "/" + p.repo + " " + p.branch + "");
+ }
+ }
+
+ private static Project toProject(String line) {
+ String path = extract(line, "path");
+ String name = extract(line, "name");
+ String revision = extract(line, "revision");
+
+ int pos = (path.startsWith("core") || path.startsWith("plugins")) ? path.lastIndexOf('/') : path.indexOf('/');
+ String group = "";
+ if (pos > 0) {
+ group = path.substring(0, pos);
+ path = path.substring(pos + 1);
+ }
+
+ name = name.substring(0, name.length() - 4);
+
+ String org = "apache";
+ if (group.startsWith("plexus")) {
+ org = "codehaus-plexus";
+ } else if (group.equals("sisu")) {
+ org = "sisu";
+ }
+
+ return new Project(org, group, path, name, (revision == null) ? "master" : revision);
+ }
+
+ private static String extract(String line, String key) {
+ int pos = line.indexOf(key);
+ if (pos < 0) {
+ return null;
+ }
+ char sep = line.charAt(pos + key.length() + 1);
+ line = line.substring(pos + key.length() + 2);
+ return line.substring(0, line.indexOf(sep));
+ }
+}
\ No newline at end of file