From 3267a330bfd702adb84c0225d489207231a531f1 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 8 Aug 2022 15:04:34 +0200 Subject: [PATCH] Implement very basic list command --- .../main/java/pgp/cert_d/cli/PGPCertDCli.java | 4 ++- .../java/pgp/cert_d/cli/commands/List.java | 29 +++++++++++++++++++ .../src/main/resources/msg_list.properties | 11 +++++++ .../src/main/resources/msg_list_de.properties | 11 +++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/List.java create mode 100644 pgpainless-cert-d-cli/src/main/resources/msg_list.properties create mode 100644 pgpainless-cert-d-cli/src/main/resources/msg_list_de.properties diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java index 355c999..f742d01 100644 --- a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java +++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/PGPCertDCli.java @@ -12,6 +12,7 @@ import pgp.cert_d.cli.commands.Export; import pgp.cert_d.cli.commands.Get; import pgp.cert_d.cli.commands.Insert; import pgp.cert_d.cli.commands.Import; +import pgp.cert_d.cli.commands.List; import pgp.cert_d.cli.commands.Setup; import pgp.cert_d.jdbc.sqlite.DatabaseSubkeyLookup; import pgp.cert_d.jdbc.sqlite.SqliteSubkeyLookupDaoImpl; @@ -32,7 +33,8 @@ import java.sql.SQLException; Insert.class, Import.class, Get.class, - Setup.class + Setup.class, + List.class } ) public class PGPCertDCli { diff --git a/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/List.java b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/List.java new file mode 100644 index 0000000..8c888c2 --- /dev/null +++ b/pgpainless-cert-d-cli/src/main/java/pgp/cert_d/cli/commands/List.java @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2022 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +package pgp.cert_d.cli.commands; + +import pgp.cert_d.cli.PGPCertDCli; +import pgp.certificate_store.Certificate; +import picocli.CommandLine; + +import java.util.Iterator; + +@CommandLine.Command(name = "list", + resourceBundle = "msg_list" +) +public class List implements Runnable { + + @Override + public void run() { + Iterator certificates = PGPCertDCli.getCertificateDirectory() + .getCertificates(); + while (certificates.hasNext()) { + Certificate certificate = certificates.next(); + // CHECKSTYLE:OFF + System.out.println(certificate.getFingerprint()); + // CHECKSTYLE:ON + } + } +} diff --git a/pgpainless-cert-d-cli/src/main/resources/msg_list.properties b/pgpainless-cert-d-cli/src/main/resources/msg_list.properties new file mode 100644 index 0000000..f58dd82 --- /dev/null +++ b/pgpainless-cert-d-cli/src/main/resources/msg_list.properties @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=List all certificates in the directory +store=Overwrite the default certificate directory path + +# Generic TODO: Remove when bumping picocli to 4.7.0 +usage.synopsisHeading=Usage:\u0020 +usage.commandListHeading = %nCommands:%n +usage.optionListHeading = %nOptions:%n +usage.footerHeading=Powered by picocli%n diff --git a/pgpainless-cert-d-cli/src/main/resources/msg_list_de.properties b/pgpainless-cert-d-cli/src/main/resources/msg_list_de.properties new file mode 100644 index 0000000..2385597 --- /dev/null +++ b/pgpainless-cert-d-cli/src/main/resources/msg_list_de.properties @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2022 Paul Schaub +# +# SPDX-License-Identifier: Apache-2.0 +usage.header=Liste alle Zertifikate im Verzeichnis auf +store=Überschreibe den Standardpfad des Zertifikatsverzeichnisses + +# Generic TODO: Remove when bumping picocli to 4.7.0 +usage.synopsisHeading=Aufruf:\u0020 +usage.commandListHeading=%nBefehle:%n +usage.optionListHeading = %nOptionen:%n +usage.footerHeading=Powered by Picocli%n