msm: consistency for equally ranked keys
[platform/upstream/rpm.git] / rpmkeys.c
index e661899..fa4e4d8 100644 (file)
--- a/rpmkeys.c
+++ b/rpmkeys.c
@@ -17,12 +17,15 @@ enum modes {
 };
 
 static int mode = 0;
+static int test = 0;
 
 static struct poptOption keyOptsTable[] = {
     { "checksig", 'K', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_CHECKSIG,
        N_("verify package signature(s)"), NULL },
     { "import", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_IMPORTKEY,
        N_("import an armored public key"), NULL },
+    { "test", '\0', POPT_ARG_NONE, &test, 0,
+       N_("don't import, but tell if it would work or not"), NULL },
 #if 0
     { "delete-key", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_DELKEY,
        N_("list keys from RPM keyring"), NULL },
@@ -60,11 +63,15 @@ int main(int argc, char *argv[])
     if (mode != MODE_LISTKEY && args == NULL)
        argerror(_("no arguments given"));
 
+    rpmtsSetRootDir(ts, rpmcliRootDir);
+
     switch (mode) {
     case MODE_CHECKSIG:
        ec = rpmcliVerifySignatures(ts, args);
        break;
     case MODE_IMPORTKEY:
+       if (test)
+           rpmtsSetFlags(ts, (rpmtsFlags(ts)|RPMTRANS_FLAG_TEST));
        ec = rpmcliImportPubkeys(ts, args);
        break;
     /* XXX TODO: actually implement these... */