diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Export.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Export.java index 555d169..8a9027a 100644 --- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Export.java +++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/Export.java @@ -4,6 +4,7 @@ package pgp.cert_d.cli.commands; +import org.bouncycastle.bcpg.ArmoredOutputStream; import org.bouncycastle.util.io.Streams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,28 +14,40 @@ import picocli.CommandLine; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.Iterator; @CommandLine.Command(name = "export", resourceBundle = "msg_export") public class Export implements Runnable { - private static final Logger LOGGER = LoggerFactory.getLogger(Get.class); + private static final Logger LOGGER = LoggerFactory.getLogger(Export.class); + + @CommandLine.Option(names = {"-a", "--armor"}) + boolean armor = false; @Override public void run() { Iterator certificates = PGPCertDCli.getCertificateDirectory() .getCertificates(); + OutputStream out = armor ? new ArmoredOutputStream(System.out) : System.out; while (certificates.hasNext()) { try { Certificate certificate = certificates.next(); InputStream inputStream = certificate.getInputStream(); - Streams.pipeAll(inputStream, System.out); + Streams.pipeAll(inputStream, out); inputStream.close(); } catch (IOException e) { LOGGER.error("IO Error", e); System.exit(-1); } } + if (armor) { + try { + out.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } }