X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/2e74acaabe9e24dda980c19ac174be10157f4578..8d55dfb66bc0dfbd2b601a27075f2876cde918e3:/src/main/java/org/asamk/signal/Main.java diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index f0b78590..00d9d7a9 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -24,10 +24,12 @@ import net.sourceforge.argparse4j.inf.Namespace; import org.asamk.signal.commands.exceptions.CommandException; import org.asamk.signal.commands.exceptions.IOErrorException; +import org.asamk.signal.commands.exceptions.RateLimitErrorException; import org.asamk.signal.commands.exceptions.UnexpectedErrorException; import org.asamk.signal.commands.exceptions.UntrustedKeyErrorException; import org.asamk.signal.commands.exceptions.UserErrorException; -import org.asamk.signal.manager.Manager; +import org.asamk.signal.logging.LogConfigurator; +import org.asamk.signal.manager.ManagerLogger; import org.asamk.signal.util.SecurityProvider; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.slf4j.bridge.SLF4JBridgeHandler; @@ -47,7 +49,8 @@ public class Main { final var nsLog = parseArgs(args); final var verboseLevel = nsLog == null ? 0 : nsLog.getInt("verbose"); final var logFile = nsLog == null ? null : nsLog.get("log-file"); - configureLogging(verboseLevel, logFile); + final var scrubLog = nsLog != null && nsLog.getBoolean("scrub-log"); + configureLogging(verboseLevel, logFile, scrubLog); var parser = App.buildArgumentParser(); @@ -80,8 +83,9 @@ public class Main { .includeArgumentNamesAsKeysInResult(true) .build() .defaultHelp(false); - parser.addArgument("--verbose").action(Arguments.count()); + parser.addArgument("-v", "--verbose").action(Arguments.count()); parser.addArgument("--log-file").type(File.class); + parser.addArgument("--scrub-log").action(Arguments.storeTrue()); try { return parser.parseKnownArgs(args, null); @@ -90,30 +94,28 @@ public class Main { } } - private static void configureLogging(final int verboseLevel, final File logFile) { + private static void configureLogging(final int verboseLevel, final File logFile, final boolean scrubLog) { LogConfigurator.setVerboseLevel(verboseLevel); LogConfigurator.setLogFile(logFile); + LogConfigurator.setScrubSensitiveInformation(scrubLog); if (verboseLevel > 0) { java.util.logging.Logger.getLogger("") .setLevel(verboseLevel > 2 ? java.util.logging.Level.FINEST : java.util.logging.Level.INFO); - Manager.initLogger(); + ManagerLogger.initLogger(); } SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); } private static int getStatusForError(final CommandException e) { - if (e instanceof UserErrorException) { - return 1; - } else if (e instanceof UnexpectedErrorException) { - return 2; - } else if (e instanceof IOErrorException) { - return 3; - } else if (e instanceof UntrustedKeyErrorException) { - return 4; - } else { - return 2; - } + return switch (e) { + case UserErrorException userErrorException -> 1; + case UnexpectedErrorException unexpectedErrorException -> 2; + case IOErrorException ioErrorException -> 3; + case UntrustedKeyErrorException untrustedKeyErrorException -> 4; + case RateLimitErrorException rateLimitErrorException -> 5; + case null, default -> 2; + }; } }