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 {