1
0
mirror of https://github.com/SKCraft/Launcher.git synced 2025-02-17 01:51:24 +01:00

Added pretty print option to package builder.

This commit is contained in:
sk89q 2014-01-09 11:20:59 -08:00
parent a5428c4505
commit 0562764dee
2 changed files with 32 additions and 1 deletions

View File

@ -9,9 +9,11 @@ package com.skcraft.launcher.builder;
import com.beust.jcommander.JCommander;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.skcraft.launcher.model.minecraft.VersionManifest;
import com.skcraft.launcher.model.modpack.Manifest;
import com.skcraft.launcher.util.SimpleLogFormatter;
import lombok.Getter;
import lombok.NonNull;
import lombok.extern.java.Log;
@ -25,7 +27,10 @@ import java.io.IOException;
public class PackageBuilder {
private final ObjectMapper mapper;
private ObjectWriter writer;
private final Manifest manifest;
@Getter
private boolean prettyPrint = false;
/**
* Create a new package builder.
@ -36,6 +41,21 @@ public class PackageBuilder {
public PackageBuilder(@NonNull ObjectMapper mapper, @NonNull Manifest manifest) {
this.mapper = mapper;
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 {
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) {
PackageOptions options = new PackageOptions();
new JCommander(options, args);
@ -95,6 +121,8 @@ public class PackageBuilder {
}
PackageBuilder builder = new PackageBuilder(mapper, manifest);
builder.setPrettyPrint(options.isPrettyPrinting());
log.info("Adding files...");
builder.addFiles(options.getFilesDir(), options.getObjectsDir());
builder.writeManifest(options.getManifestPath());

View File

@ -44,4 +44,7 @@ public class PackageOptions {
@Parameter(names = "--objects-url")
private String objectsLocation;
@Parameter(names = "--pretty-print")
private boolean prettyPrinting;
}