mirror of
https://github.com/SKCraft/Launcher.git
synced 2025-02-20 02:22:16 +01:00
Added pretty print option to package builder.
This commit is contained in:
parent
a5428c4505
commit
0562764dee
@ -9,9 +9,11 @@ package com.skcraft.launcher.builder;
|
|||||||
import com.beust.jcommander.JCommander;
|
import com.beust.jcommander.JCommander;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectWriter;
|
||||||
import com.skcraft.launcher.model.minecraft.VersionManifest;
|
import com.skcraft.launcher.model.minecraft.VersionManifest;
|
||||||
import com.skcraft.launcher.model.modpack.Manifest;
|
import com.skcraft.launcher.model.modpack.Manifest;
|
||||||
import com.skcraft.launcher.util.SimpleLogFormatter;
|
import com.skcraft.launcher.util.SimpleLogFormatter;
|
||||||
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.extern.java.Log;
|
import lombok.extern.java.Log;
|
||||||
|
|
||||||
@ -25,7 +27,10 @@ import java.io.IOException;
|
|||||||
public class PackageBuilder {
|
public class PackageBuilder {
|
||||||
|
|
||||||
private final ObjectMapper mapper;
|
private final ObjectMapper mapper;
|
||||||
|
private ObjectWriter writer;
|
||||||
private final Manifest manifest;
|
private final Manifest manifest;
|
||||||
|
@Getter
|
||||||
|
private boolean prettyPrint = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new package builder.
|
* Create a new package builder.
|
||||||
@ -36,6 +41,21 @@ public class PackageBuilder {
|
|||||||
public PackageBuilder(@NonNull ObjectMapper mapper, @NonNull Manifest manifest) {
|
public PackageBuilder(@NonNull ObjectMapper mapper, @NonNull Manifest manifest) {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
this.manifest = manifest;
|
this.manifest = manifest;
|
||||||
|
setPrettyPrint(false); // Set writer
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set whether pretty printing should be used.
|
||||||
|
*
|
||||||
|
* @param prettyPrint true to pretty print
|
||||||
|
*/
|
||||||
|
public void setPrettyPrint(boolean prettyPrint) {
|
||||||
|
if (prettyPrint) {
|
||||||
|
writer = mapper.writerWithDefaultPrettyPrinter();
|
||||||
|
} else {
|
||||||
|
writer = mapper.writer();
|
||||||
|
}
|
||||||
|
this.prettyPrint = prettyPrint;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,9 +78,15 @@ public class PackageBuilder {
|
|||||||
*/
|
*/
|
||||||
public void writeManifest(@NonNull File path) throws IOException {
|
public void writeManifest(@NonNull File path) throws IOException {
|
||||||
path.getParentFile().mkdirs();
|
path.getParentFile().mkdirs();
|
||||||
mapper.writeValue(path, manifest);
|
writer.writeValue(path, manifest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse arguments for the builder.
|
||||||
|
*
|
||||||
|
* @param args arguments
|
||||||
|
* @return options
|
||||||
|
*/
|
||||||
private static PackageOptions parseArgs(String[] args) {
|
private static PackageOptions parseArgs(String[] args) {
|
||||||
PackageOptions options = new PackageOptions();
|
PackageOptions options = new PackageOptions();
|
||||||
new JCommander(options, args);
|
new JCommander(options, args);
|
||||||
@ -95,6 +121,8 @@ public class PackageBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PackageBuilder builder = new PackageBuilder(mapper, manifest);
|
PackageBuilder builder = new PackageBuilder(mapper, manifest);
|
||||||
|
builder.setPrettyPrint(options.isPrettyPrinting());
|
||||||
|
|
||||||
log.info("Adding files...");
|
log.info("Adding files...");
|
||||||
builder.addFiles(options.getFilesDir(), options.getObjectsDir());
|
builder.addFiles(options.getFilesDir(), options.getObjectsDir());
|
||||||
builder.writeManifest(options.getManifestPath());
|
builder.writeManifest(options.getManifestPath());
|
||||||
|
@ -44,4 +44,7 @@ public class PackageOptions {
|
|||||||
@Parameter(names = "--objects-url")
|
@Parameter(names = "--objects-url")
|
||||||
private String objectsLocation;
|
private String objectsLocation;
|
||||||
|
|
||||||
|
@Parameter(names = "--pretty-print")
|
||||||
|
private boolean prettyPrinting;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user