mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 11:49:25 +00:00
Add download
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user