1.1 --- a/rpm-razor.c Wed Jun 04 13:27:49 2008 -0400
1.2 +++ b/rpm-razor.c Wed Jun 04 15:04:45 2008 -0400
1.3 @@ -39,7 +39,7 @@
1.4 };
1.5
1.6 static int option_all, option_whatrequires, option_whatprovides;
1.7 -
1.8 +static int option_package;
1.9
1.10 static const struct option query_options[] = {
1.11 { OPTION_BOOL, "configfiles", 'c', NULL, "list all configuration files", NULL },
1.12 @@ -51,7 +51,7 @@
1.13 { OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_all },
1.14 { OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
1.15 { OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
1.16 - { OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", NULL },
1.17 + { OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", &option_package },
1.18 { OPTION_BOOL, "ftswalk", 'W', NULL, "query/verify package(s) from TOP file tree walk", NULL },
1.19 { OPTION_BOOL, "pkgid", 0, NULL, "query/verify package(s) with package identifier", NULL },
1.20 { OPTION_BOOL, "hdrid", 0, NULL, "query/verify package(s) with header identifier", NULL },
1.21 @@ -328,6 +328,28 @@
1.22 razor_property_iterator_destroy(pi);
1.23 }
1.24
1.25 +static struct razor_set *
1.26 +create_set_from_command_line(int argc, const char *argv[])
1.27 +{
1.28 + struct razor_importer *importer;
1.29 + struct razor_rpm *rpm;
1.30 + int i;
1.31 +
1.32 + importer = razor_importer_new();
1.33 +
1.34 + for (i = 0; i < argc; i++) {
1.35 + rpm = razor_rpm_open(argv[i]);
1.36 + if (rpm == NULL)
1.37 + continue;
1.38 + if (razor_importer_add_rpm(importer, rpm))
1.39 + printf("couldn't import %s\n", argv[i]);
1.40 +
1.41 + razor_rpm_close(rpm);
1.42 + }
1.43 +
1.44 + return razor_importer_finish(importer);
1.45 +}
1.46 +
1.47 static void
1.48 command_query(int argc, const char *argv[])
1.49 {
1.50 @@ -337,7 +359,13 @@
1.51 struct razor_package_query *query;
1.52 const char *name, *version, *arch;
1.53
1.54 - set = razor_set_open(repo_filename);
1.55 + if (option_package) {
1.56 + set = create_set_from_command_line(argc, argv);
1.57 + argc = 0;
1.58 + option_all = 1;
1.59 + } else {
1.60 + set = razor_set_open(repo_filename);
1.61 + }
1.62
1.63 if (option_all + option_whatprovides + option_whatrequires > 1) {
1.64 printf("only one type of query/verify "