Implement armor option for export command

This commit is contained in:
Paul Schaub 2022-08-08 15:04:22 +02:00
parent 338530b1bc
commit 6a16d0cff5
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
1 changed files with 15 additions and 2 deletions

View File

@ -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<Certificate> 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);
}
}
}
}