#include "system.h"
-const char *__progname;
#include <rpm/rpmcli.h>
#include <rpm/rpmlib.h> /* RPMSIGTAG, rpmReadPackageFile .. */
int i;
#endif
+ xsetprogname(argv[0]); /* Portability call -- see system.h */
+
optCon = rpmcliInit(argc, argv, optionsTable);
/* Set the major mode based on argv[0] */
#ifdef IAM_RPMQV
- if (rstreq(__progname, "rpmquery")) bigMode = MODE_QUERY;
- if (rstreq(__progname, "rpmverify")) bigMode = MODE_VERIFY;
+ if (rstreq(xgetprogname(), "rpmquery")) bigMode = MODE_QUERY;
+ if (rstreq(xgetprogname(), "rpmverify")) bigMode = MODE_VERIFY;
#endif
#if defined(IAM_RPMQV)
#ifdef IAM_RPMEIU
if (bigMode == MODE_UNKNOWN || (bigMode & MODES_IE))
{ int iflags = (ia->installInterfaceFlags &
- (INSTALL_UPGRADE|INSTALL_FRESHEN|INSTALL_INSTALL));
+ (INSTALL_UPGRADE|INSTALL_FRESHEN|
+ INSTALL_INSTALL|INSTALL_REINSTALL));
int eflags = (ia->installInterfaceFlags & INSTALL_ERASE);
if (iflags & eflags)
if (ia->prefix && ia->prefix[0] != '/')
argerror(_("arguments to --prefix must begin with a /"));
- if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags & INSTALL_HASH))
+ if (!(bigMode & MODES_IE) && (ia->installInterfaceFlags & INSTALL_HASH))
argerror(_("--hash (-h) may only be specified during package "
- "installation"));
+ "installation and erasure"));
- if (bigMode != MODE_INSTALL && (ia->installInterfaceFlags & INSTALL_PERCENT))
+ if (!(bigMode & MODES_IE) && (ia->installInterfaceFlags & INSTALL_PERCENT))
argerror(_("--percent may only be specified during package "
- "installation"));
+ "installation and erasure"));
if (bigMode != MODE_INSTALL && (ia->probFilter & RPMPROB_FILTER_REPLACEPKG))
argerror(_("--replacepkgs may only be specified during package "
verifyFlags &= ~qva->qva_flags;
qva->qva_flags = (rpmQueryFlags) verifyFlags;
+ rpmtsSetFlags(ts, rpmtsFlags(ts) | (ia->transFlags & RPMTRANS_FLAG_NOPLUGINS));
+
if (!poptPeekArg(optCon) && !(qva->qva_source == RPMQV_ALL))
argerror(_("no arguments given for verify"));
ec = rpmcliVerify(ts, qva, (ARGV_const_t) poptGetArgs(optCon));
case MODE_ERASE:
#endif
case MODE_UNKNOWN:
- if (poptPeekArg(optCon) != NULL || argc <= 1 || rpmIsVerbose()) {
+ if (poptPeekArg(optCon) != NULL || argc <= 1) {
printUsage(optCon, stderr, 0);
ec = argc;
}
rpmcliFini(optCon);
+ rpmlog(RPMLOG_DEBUG, "Exit status: %d\n", ec);
+
return RETVAL(ec);
}