Add download

This commit is contained in:
2026-01-01 17:09:43 +01:00
parent 887e2a6d03
commit fa3c30fdac
8 changed files with 225 additions and 3 deletions

View File

@@ -56,9 +56,10 @@ public class ViewController {
model.addAttribute("username", sessionUsername);
model.addAttribute("channel", sessionUsername);
model.addAttribute("adminChannels", channelDirectoryService.adminChannelsFor(sessionUsername));
addVersionAttributes(model);
return "dashboard";
}
model.addAttribute("version", versionService.getVersion());
addVersionAttributes(model);
return "index";
}
@@ -111,4 +112,9 @@ public class ViewController {
model.addAttribute("broadcaster", broadcaster.toLowerCase());
return "broadcast";
}
private void addVersionAttributes(Model model) {
model.addAttribute("version", versionService.getVersion());
model.addAttribute("releaseVersion", versionService.getReleaseVersion());
}
}

View File

@@ -12,21 +12,32 @@ import java.io.InputStreamReader;
public class VersionService {
private static final Logger LOG = LoggerFactory.getLogger(VersionService.class);
private final String version;
private final String releaseVersion;
public VersionService() {
this.version = resolveVersion();
this.releaseVersion = normalizeReleaseVersion(this.version);
}
public String getVersion() {
return version;
}
public String getReleaseVersion() {
return releaseVersion;
}
private String resolveVersion() {
String manifestVersion = getClass().getPackage().getImplementationVersion();
if (manifestVersion != null && !manifestVersion.isBlank()) {
return manifestVersion;
}
String pomVersion = getPomVersion();
if (pomVersion != null && !pomVersion.isBlank()) {
return pomVersion;
}
String gitDescribeVersion = getGitVersionString();
if (gitDescribeVersion != null) {
return "git-" + gitDescribeVersion;
@@ -35,6 +46,38 @@ public class VersionService {
return "unknown";
}
private String normalizeReleaseVersion(String baseVersion) {
if (baseVersion == null || baseVersion.isBlank()) {
return "latest";
}
String normalized = baseVersion.trim();
normalized = normalized.replaceFirst("^git-", "");
normalized = normalized.replaceFirst("(?i)^v", "");
normalized = normalized.replaceFirst("-SNAPSHOT$", "");
if (normalized.isBlank()) {
return "latest";
}
return normalized;
}
private String getPomVersion() {
try (var inputStream = getClass().getResourceAsStream("/META-INF/maven/dev.kruhlmann/imgfloat/pom.properties")) {
if (inputStream == null) {
return null;
}
var properties = new java.util.Properties();
properties.load(inputStream);
String pomVersion = properties.getProperty("version");
if (pomVersion != null && !pomVersion.isBlank()) {
return pomVersion.trim();
}
} catch (IOException e) {
LOG.warn("Unable to read version from pom.properties", e);
}
return null;
}
private String getGitVersionString() {
try {
Process check = new ProcessBuilder("git", "--version")