Skip to content

Commit 677ac63

Browse files
authored
paper: restore requirement of version.json metadata (#423)
* Revert "paper: fall back to VERSION env var when jar missing metadata (#422)" This reverts commit 1898ff8. * Revert "paper: version metadata is optional for custom server jar (#420)" This reverts commit d55e8f8.
1 parent 1898ff8 commit 677ac63

File tree

1 file changed

+23
-37
lines changed

1 file changed

+23
-37
lines changed

src/main/java/me/itzg/helpers/paper/InstallPaperCommand.java

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
@Slf4j
3737
public class InstallPaperCommand implements Callable<Integer> {
3838

39-
public static final String VERSION_METADATA_NAME = "version.json";
4039
@ArgGroup
4140
Inputs inputs = new Inputs();
4241

@@ -162,47 +161,34 @@ private Result downloadCustom(URI downloadUrl) {
162161
.handleStatus(Fetch.loggingDownloadStatusHandler(log))
163162
.assemble()
164163
.publishOn(Schedulers.boundedElastic())
165-
.flatMap(serverJar -> processDownloadedJar(downloadUrl, serverJar))
164+
.flatMap(serverJar -> {
165+
final String version;
166+
try {
167+
version = extractVersionFromJar(serverJar);
168+
169+
if (version == null) {
170+
return Mono.error(new GenericException("Version metadata was not available from custom server jar"));
171+
}
172+
} catch (IOException e) {
173+
return Mono.error(new GenericException("Failed to extract version from custom server jar", e));
174+
}
175+
return Mono.just(Result.builder()
176+
.serverJar(serverJar)
177+
.newManifest(
178+
PaperManifest.builder()
179+
.customDownloadUrl(downloadUrl)
180+
.files(Collections.singleton(Manifests.relativize(outputDirectory, serverJar)))
181+
.build()
182+
)
183+
.version(version)
184+
.build());
185+
})
166186
.block();
167187
}
168188
}
169189

170-
private Mono<Result> processDownloadedJar(URI downloadUrl, Path serverJar) {
171-
final String version;
172-
try {
173-
final String versionFromJar = extractVersionFromJar(serverJar);
174-
if (versionFromJar != null) {
175-
version = versionFromJar;
176-
}
177-
else {
178-
log.warn("Version metadata {} was missing from server jar: {}", VERSION_METADATA_NAME, serverJar);
179-
final String fromEnv = System.getenv("VERSION");
180-
if (fromEnv != null) {
181-
version = fromEnv;
182-
}
183-
else {
184-
throw new GenericException("Set environment variable 'VERSION' due to missing version metadata");
185-
}
186-
187-
}
188-
} catch (IOException e) {
189-
return Mono.error(new GenericException("Failed to extract version from custom server jar", e));
190-
}
191-
192-
return Mono.just(Result.builder()
193-
.serverJar(serverJar)
194-
.newManifest(
195-
PaperManifest.builder()
196-
.customDownloadUrl(downloadUrl)
197-
.files(Collections.singleton(Manifests.relativize(outputDirectory, serverJar)))
198-
.build()
199-
)
200-
.version(version)
201-
.build());
202-
}
203-
204190
private String extractVersionFromJar(Path serverJar) throws IOException {
205-
final VersionMeta versionMeta = IoStreams.readFileFromZip(serverJar, VERSION_METADATA_NAME, in ->
191+
final VersionMeta versionMeta = IoStreams.readFileFromZip(serverJar, "version.json", in ->
206192
ObjectMappers.defaultMapper().readValue(in, VersionMeta.class)
207193
);
208194
if (versionMeta == null) {

0 commit comments

Comments
 (0)