4 #include <rpm/rpmcli.h>
8 #if !defined(__GLIBC__) && !defined(__APPLE__)
9 char ** environ = NULL;
13 MODE_INITDB = (1 << 0),
14 MODE_REBUILDDB = (1 << 1),
15 MODE_VERIFYDB = (1 << 2),
20 static struct poptOption optionsTable[] = {
21 { NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmcliAllPoptTable, 0,
22 N_("Common options for all rpm modes and executables:"), NULL },
23 { "initdb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_INITDB,
24 N_("initialize database"), NULL},
25 { "rebuilddb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_REBUILDDB,
26 N_("rebuild database inverted lists from installed package headers"),
28 { "verifydb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_VERIFYDB,
29 N_("verify database files"), NULL},
36 int main(int argc, char *argv[])
38 int ec = EXIT_FAILURE;
39 poptContext optCon = rpmcliInit(argc, argv, optionsTable);
42 if (argc < 2 || poptPeekArg(optCon)) {
43 printUsage(optCon, stderr, 0);
48 rpmtsSetRootDir(ts, rpmcliRootDir);
52 ec = rpmtsInitDB(ts, 0644);
55 { rpmVSFlags vsflags = rpmExpandNumeric("%{_vsflags_rebuilddb}");
56 rpmVSFlags ovsflags = rpmtsSetVSFlags(ts, vsflags);
57 ec = rpmtsRebuildDB(ts);
58 vsflags = rpmtsSetVSFlags(ts, ovsflags);
61 ec = rpmtsVerifyDB(ts);
64 argerror(_("only one major mode may be specified"));