src/main.c
changeset 457 51a084acef49
parent 455 df914f383f5c
child 458 3f841a46eab5
     1.1 --- a/src/main.c	Thu Oct 09 17:27:41 2014 +0100
     1.2 +++ b/src/main.c	Fri Oct 17 10:08:28 2014 +0100
     1.3 @@ -1671,6 +1671,35 @@
     1.4  }
     1.5  
     1.6  static int
     1.7 +command_dump(int argc, char * const argv[])
     1.8 +{
     1.9 +	struct razor_error *error = NULL;
    1.10 +	const char *filename;
    1.11 +
    1.12 +	switch (razor_getopt(argc, argv, 0, NULL, "[filename]", NULL)) {
    1.13 +		case -2:
    1.14 +			return 0;
    1.15 +		case -1:
    1.16 +			return 1;
    1.17 +	}
    1.18 +
    1.19 +	if (argc - optind > 1) {
    1.20 +		razor_usage(argv[0], 0, NULL, "[filename]");
    1.21 +		return 1;
    1.22 +	}
    1.23 +
    1.24 +	filename = argv[optind];
    1.25 +
    1.26 +	if (razor_dump_database(stdout, install_root, filename, &error)) {
    1.27 +		fprintf(stderr, "%s\n", razor_error_get_msg(error));
    1.28 +		razor_error_free(error);
    1.29 +		return 1;
    1.30 +	}
    1.31 +
    1.32 +	return 0;
    1.33 +}
    1.34 +
    1.35 +static int
    1.36  command_info(int argc, char * const argv[])
    1.37  {
    1.38  	struct razor_error *error = NULL;
    1.39 @@ -1796,6 +1825,7 @@
    1.40  } razor_commands[] = {
    1.41  	{ "diff", "Show diff between two package sets", command_diff },
    1.42  	{ "download", "Download packages", command_download },
    1.43 +	{ "dump", "Low-level database dump (for debugging)", command_dump },
    1.44  	{ "help", "List available commands", command_help },
    1.45  #if HAVE_RPMLIB
    1.46  	{ "import-rpmdb", "Import the system rpm database",