pgpeasy/src/main/java/org/pgpainless/pgpeasy/PGPeasy.java

79 lines
2.3 KiB
Java
Raw Normal View History

2022-03-21 13:18:43 +01:00
package org.pgpainless.pgpeasy;
2022-04-11 19:07:09 +02:00
import org.pgpainless.cli.PGPainlessCLI;
2022-03-21 13:18:43 +01:00
import org.pgpainless.pgpeasy.commands.Packet;
import org.pgpainless.pgpeasy.commands.WOT;
2022-04-11 19:07:09 +02:00
import org.pgpainless.sop.SOPImpl;
import pgp.cert_d.cli.PGPCertDCli;
import pgp.vks.client.cli.VKSCLI;
import pgp.wkd.cli.WKDCLI;
2022-03-21 13:18:43 +01:00
import picocli.AutoComplete;
import picocli.CommandLine;
2022-04-11 19:07:09 +02:00
import sop.cli.picocli.SopCLI;
import sop.cli.picocli.commands.ArmorCmd;
import sop.cli.picocli.commands.DearmorCmd;
import sop.cli.picocli.commands.DecryptCmd;
import sop.cli.picocli.commands.DetachInbandSignatureAndMessageCmd;
import sop.cli.picocli.commands.EncryptCmd;
import sop.cli.picocli.commands.ExtractCertCmd;
import sop.cli.picocli.commands.GenerateKeyCmd;
import sop.cli.picocli.commands.SignCmd;
import sop.cli.picocli.commands.VerifyCmd;
2022-03-21 13:18:43 +01:00
@CommandLine.Command(
subcommands = {
2022-04-11 19:07:09 +02:00
// Inherit from SOP
EncryptCmd.class,
DecryptCmd.class,
SignCmd.class,
VerifyCmd.class,
ArmorCmd.class,
DearmorCmd.class,
ExtractCertCmd.class,
GenerateKeyCmd.class,
DetachInbandSignatureAndMessageCmd.class,
// SOP as subcommand
SopCLI.class,
// WKD
WKDCLI.class,
// VKS
VKSCLI.class,
// PGP-Cert-D
PGPCertDCli.class,
// PGPeasy
2022-03-21 13:18:43 +01:00
WOT.class,
2022-04-11 19:07:09 +02:00
Packet.class,
// Picocli
2022-03-21 13:18:43 +01:00
CommandLine.HelpCommand.class,
AutoComplete.GenerateCompletion.class
}
)
public class PGPeasy {
public static void main(String[] args) {
2022-04-11 19:07:09 +02:00
SopCLI.setSopInstance(new SOPImpl());
2022-03-21 13:18:43 +01:00
int exitCode = execute(args);
if (exitCode != 0) {
System.exit(exitCode);
}
}
public static int execute(String[] args) {
2022-04-11 19:07:09 +02:00
CommandLine cmd = new CommandLine(PGPeasy.class);
// Hide generate-completion command
CommandLine gen = cmd.getSubcommands().get("generate-completion");
gen.getCommandSpec().usageMessage().hidden(true);
return cmd
2022-03-21 13:18:43 +01:00
.setCommandName("pgpeasy")
.setCaseInsensitiveEnumValuesAllowed(true)
.execute(args);
}
}