src/rpm.c
changeset 277 27b0d4068feb
parent 276 4b0a1201342a
child 279 5a20654e903c
     1.1 --- a/src/rpm.c	Mon Jun 23 20:20:08 2008 -0400
     1.2 +++ b/src/rpm.c	Mon Jun 23 20:48:48 2008 -0400
     1.3 @@ -51,7 +51,7 @@
     1.4   * what else in on the command line. */
     1.5  
     1.6  static int option_all, option_list, option_whatrequires, option_whatprovides;
     1.7 -static int option_package;
     1.8 +static int option_package, option_file;
     1.9  
    1.10  static const struct option query_options[] = {
    1.11  	{ OPTION_BOOL, "configfiles", 'c', NULL, "list all configuration files", NULL },
    1.12 @@ -61,7 +61,7 @@
    1.13  	{ OPTION_STRING, "queryformat", 0, "QUERYFORMAT", "use the following query format", NULL },
    1.14  	{ OPTION_BOOL, "state", 's', NULL, "display the states of the listed files", NULL },
    1.15  	{ OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_all },
    1.16 -	{ OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
    1.17 +	{ OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", &option_file },
    1.18  	{ OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
    1.19  	{ OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", &option_package },
    1.20  	{ OPTION_BOOL, "ftswalk", 'W', NULL, "query/verify package(s) from TOP file tree walk", NULL },
    1.21 @@ -84,7 +84,7 @@
    1.22  	{ OPTION_BOOL, "nodeps", 0, NULL, "don't verify package dependencies", &option_nodeps },
    1.23  	{ OPTION_BOOL, "noscript", 0, NULL, "don't execute verify script(s)", NULL, },
    1.24  	{ OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_all },
    1.25 -	{ OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
    1.26 +	{ OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", &option_file },
    1.27  	{ OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
    1.28  	{ OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", &option_package },
    1.29  	{ OPTION_BOOL, "ftswalk", 'W', NULL, "query/verify package(s) from TOP file tree walk", NULL },
    1.30 @@ -338,14 +338,20 @@
    1.31  {
    1.32  	struct razor_package_query *query;
    1.33  	struct razor_package_iterator *pi;
    1.34 +	char *files;
    1.35  	int i;
    1.36  
    1.37 -	if (option_all + option_whatprovides + option_whatrequires > 1) {
    1.38 +	if (option_all + option_whatprovides + option_whatrequires +
    1.39 +	    option_file > 1) {
    1.40  		printf("only one type of query/verify "
    1.41  		       "may be performed at a time\n");
    1.42  		exit(1);
    1.43  	}
    1.44  
    1.45 +	files = "install/var/lib/razor/system-files.repo";
    1.46 +	if (option_file)
    1.47 +		razor_set_open_files(set, files);
    1.48 +
    1.49  	query = razor_package_query_create(set);
    1.50  
    1.51  	if (option_all) {
    1.52 @@ -362,6 +368,13 @@
    1.53  			add_property_packages(set, query,
    1.54  					      argv[i], NULL,
    1.55  					      RAZOR_PROPERTY_PROVIDES);
    1.56 +	} else if (option_file) {
    1.57 +		for (i = 0; i < argc; i++) {
    1.58 +			pi = razor_package_iterator_create_for_file(set,
    1.59 +								    argv[i]);
    1.60 +			razor_package_query_add_iterator(query, pi);
    1.61 +			razor_package_iterator_destroy(pi);
    1.62 +		}
    1.63  	} else if (argc > 0) {
    1.64  		add_command_line_packages(set, query, argc, argv);
    1.65  	} else {