diff options
author | Michael Schroeder <mls@suse.de> | 2020-02-03 14:20:19 +0100 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2020-02-26 12:50:22 +0200 |
commit | 243041f5fb68b68102243d713a1c5a3dc52698a2 (patch) | |
tree | 4a28844fdfa95f92b1751f4c52b1eea26a2d6150 /rpmdb.c | |
parent | 6489957449fec63ddf330330e9435b4ee0c388b0 (diff) | |
download | rpm-243041f5fb68b68102243d713a1c5a3dc52698a2.tar.gz |
Add a --salvagedb option to the rpmdb tool
Diffstat (limited to 'rpmdb.c')
-rw-r--r-- | rpmdb.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -12,6 +12,7 @@ enum modes { MODE_VERIFYDB = (1 << 2), MODE_EXPORTDB = (1 << 3), MODE_IMPORTDB = (1 << 4), + MODE_SALVAGEDB = (1 << 5), }; static int mode = 0; @@ -24,6 +25,8 @@ static struct poptOption dbOptsTable[] = { NULL}, { "verifydb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR|POPT_ARGFLAG_DOC_HIDDEN), &mode, MODE_VERIFYDB, N_("verify database files"), NULL}, + { "salvagedb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR|POPT_ARGFLAG_DOC_HIDDEN), + &mode, MODE_SALVAGEDB, N_("salvage database"), NULL}, { "exportdb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR), &mode, MODE_EXPORTDB, N_("export database to stdout header list"), NULL}, @@ -108,8 +111,11 @@ int main(int argc, char *argv[]) ec = rpmtsInitDB(ts, 0644); break; case MODE_REBUILDDB: + case MODE_SALVAGEDB: { rpmVSFlags vsflags = rpmExpandNumeric("%{_vsflags_rebuilddb}"); rpmVSFlags ovsflags = rpmtsSetVSFlags(ts, vsflags); + if (mode == MODE_SALVAGEDB) + rpmDefineMacro(NULL, "_rebuilddb_salvage 1", 0); ec = rpmtsRebuildDB(ts); rpmtsSetVSFlags(ts, ovsflags); } break; |