pgpainless/pgpainless-cli/src/main/java/org/pgpainless/cli/PGPainlessCLI.java

42 lines
1.1 KiB
Java

// SPDX-FileCopyrightText: 2021 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.cli;
import org.pgpainless.sop.SOPImpl;
import sop.cli.picocli.SopCLI;
/**
* This class merely binds PGPainless to {@link SopCLI} by injecting a {@link SOPImpl} instance.
* CLI command calls are then simply forwarded to {@link SopCLI#execute(String[])}.
*/
public class PGPainlessCLI {
static {
SopCLI.EXECUTABLE_NAME = "pgpainless-cli";
SopCLI.setSopInstance(new SOPImpl());
}
/**
* Main method of the CLI application.
* @param args arguments
*/
public static void main(String[] args) {
int result = execute(args);
if (result != 0) {
System.exit(result);
}
}
/**
* Execute the given command and return the exit code of the program.
*
* @param args command string array (e.g. ["pgpainless-cli", "generate-key", "Alice"])
* @return exit code
*/
public static int execute(String... args) {
return SopCLI.execute(args);
}
}