6 #include <rpm/rpmcli.h>
7 #include <rpm/rpmsign.h>
11 #if !defined(__GLIBC__) && !defined(__APPLE__)
24 {
"addsign",
'\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode,
MODE_ADDSIGN,
25 N_(
"sign package(s)"), NULL },
26 {
"resign",
'\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode,
MODE_RESIGN,
27 N_(
"sign package(s) (identical to --addsign)"), NULL },
28 {
"delsign",
'\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode,
MODE_DELSIGN,
29 N_(
"delete package signatures"), NULL },
35 N_(
"Signature options:"), NULL },
37 N_(
"Common options for all rpm modes and executables:"), NULL },
45 static int doSign(poptContext optCon)
47 int rc = EXIT_FAILURE;
48 char * passPhrase = NULL;
49 char * name =
rpmExpand(
"%{?_gpg_name}", NULL);
52 fprintf(stderr,
_(
"You must set \"%%_gpg_name\" in your macro file\n"));
58 while ((arg = poptGetArg(optCon)) != NULL) {
68 int main(
int argc,
char *argv[])
70 int ec = EXIT_FAILURE;
71 poptContext optCon =
rpmcliInit(argc, argv, optionsTable);
79 if (poptPeekArg(optCon) == NULL) {
90 while ((arg = poptGetArg(optCon)) != NULL) {
95 argerror(
_(
"only one major mode may be specified"));
int rpmPkgSign(const char *path, const struct rpmSignArgs *args)
Sign a package.
void printUsage(poptContext con, FILE *fp, int flags)
poptContext rpmcliInit(int argc, char *const argv[], struct poptOption *optionsTable)
Initialize most everything needed by an rpm CLI executable context.
poptContext rpmcliFini(poptContext optCon)
Destroy most everything needed by an rpm CLI executable context.
void argerror(const char *desc)
static struct poptOption optionsTable[]
static struct poptOption signOptsTable[]
static int rstreq(const char *s1, const char *s2)
Test for string equality.
int main(int argc, char *argv[])
int rpmPkgDelSign(const char *path)
Delete signature(s) from a package.
char * rpmExpand(const char *arg,...) RPM_GNUC_NULL_TERMINATED
Return (malloc'ed) concatenated macro expansion(s).
static int doSign(poptContext optCon)
struct poptOption rpmcliAllPoptTable[]
Popt option table for options shared by all modes and executables.