From bdc60cad2c520494ebd96fa5d17dc2aca6ef7892 Mon Sep 17 00:00:00 2001 From: Rob Greene Date: Mon, 23 Oct 2023 22:08:15 -0500 Subject: [PATCH] Adding default option for 'acx import' to use raw/binary. #122 --- .../acx/command/ImportCommand.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/app/cli-acx/src/main/java/io/github/applecommander/acx/command/ImportCommand.java b/app/cli-acx/src/main/java/io/github/applecommander/acx/command/ImportCommand.java index 070da73..2d4ef7b 100644 --- a/app/cli-acx/src/main/java/io/github/applecommander/acx/command/ImportCommand.java +++ b/app/cli-acx/src/main/java/io/github/applecommander/acx/command/ImportCommand.java @@ -27,11 +27,7 @@ import java.io.InputStream; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.Queue; +import java.util.*; import java.util.function.Function; import java.util.logging.Logger; @@ -73,7 +69,7 @@ public class ImportCommand extends ReadWriteDiskCommandOptions { private InputData inputData; @ArgGroup(heading = "%nProcessing options:%n") - private Processor processor; + private Processor processor = new Processor(); @ArgGroup(heading = "%nGeneral overrides:%n", exclusive = false) private Overrides overrides = new Overrides(); @@ -173,14 +169,19 @@ public class ImportCommand extends ReadWriteDiskCommandOptions { } } } - + public static class Processor { - private Function> fileEntryReaderFn; - + private Function> fileEntryReaderFn = this::handleRawFile; + public List apply(FileEntryReader reader) { return fileEntryReaderFn.apply(reader); } - + + @Option(names = { "--raw", "--binary" }, description = { "Import as a raw binary file." }) + public void setRawBinaryMode(boolean flag) { + fileEntryReaderFn = this::handleRawFile; + } + @Option(names = { "--text", "--text-high" }, description = { "Import as a text file, setting high bit and ", "replacing newline characters with $8D." }) @@ -221,6 +222,10 @@ public class ImportCommand extends ReadWriteDiskCommandOptions { fileEntryReaderFn = this::handleShrinkitMode; } + private List handleRawFile(FileEntryReader reader) { + return Arrays.asList(reader); + } + private List handleTextModeSetHighBit(FileEntryReader reader) { InputStream inputStream = new ByteArrayInputStream(reader.getFileData().get()); return handleTextMode(TranslatorStream.builder(inputStream)