package net.mcforkage.ant;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import net.mcforkage.ant.compression.BitInputStream;
import net.mcforkage.ant.diff2.UncompressDiff2;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class UncompressDiff2Task extends Task {
private File infile, outfile;
public void setInput(File f) {infile = f;}
public void setOutput(File f) {outfile = f;}
public static void main(String[] args) throws Exception {
UncompressDiff2Task t = new UncompressDiff2Task();
t.infile = new File("../../build/bytecode.patch2z");
t.outfile = new File("../../build/bytecode.patch2.decomp");
t.execute();
}
@Override
public void execute() throws BuildException {
if(infile == null) throw new BuildException("Input file not set");
if(outfile == null) throw new BuildException("Output file not set");
try (BitInputStream in = new BitInputStream(new BufferedInputStream(new FileInputStream(infile)))) {
try (PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(outfile), StandardCharsets.UTF_8))) {
UncompressDiff2.uncompress(in, out);
}
} catch(IOException e) {
throw new BuildException(e);
}
}
}