1.1 --- a/rpm-razor.c Wed Jun 04 21:06:09 2008 -0400
1.2 +++ b/rpm-razor.c Sun Jun 08 18:29:24 2008 -0400
1.3 @@ -77,10 +77,10 @@
1.4 { OPTION_BOOL, "nofiles", 0, NULL, "don't verify files in package", NULL },
1.5 { OPTION_BOOL, "nodeps", 0, NULL, "don't verify package dependencies", NULL },
1.6 { OPTION_BOOL, "noscript", 0, NULL, "don't execute verify script(s)", NULL, },
1.7 - { OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_al },
1.8 + { OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_all },
1.9 { OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
1.10 { OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
1.11 - { OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", NULL },
1.12 + { OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", &option_package },
1.13 { OPTION_BOOL, "ftswalk", 'W', NULL, "query/verify package(s) from TOP file tree walk", NULL },
1.14 { OPTION_BOOL, "pkgid", 0, NULL, "query/verify package(s) with package identifier", NULL },
1.15 { OPTION_BOOL, "hdrid", 0, NULL, "query/verify package(s) with header identifier", NULL },
1.16 @@ -311,6 +311,45 @@
1.17 razor_package_iterator_destroy(pi);
1.18 }
1.19
1.20 +static struct razor_package_iterator *
1.21 +get_query_packages(struct razor_set *set, int argc, const char *argv[])
1.22 +{
1.23 + struct razor_package_query *query;
1.24 + struct razor_package_iterator *pi;
1.25 + int i;
1.26 +
1.27 + if (option_all + option_whatprovides + option_whatrequires > 1) {
1.28 + printf("only one type of query/verify "
1.29 + "may be performed at a time\n");
1.30 + exit(1);
1.31 + }
1.32 +
1.33 + query = razor_package_query_create(set);
1.34 +
1.35 + if (option_all) {
1.36 + pi = razor_package_iterator_create(set);
1.37 + razor_package_query_add_iterator(query, pi);
1.38 + razor_package_iterator_destroy(pi);
1.39 + } else if (option_whatrequires) {
1.40 + for (i = 0; i < argc; i++)
1.41 + add_property_packages(set, query,
1.42 + argv[i], NULL,
1.43 + RAZOR_PROPERTY_REQUIRES);
1.44 + } else if (option_whatprovides) {
1.45 + for (i = 0; i < argc; i++)
1.46 + add_property_packages(set, query,
1.47 + argv[i], NULL,
1.48 + RAZOR_PROPERTY_PROVIDES);
1.49 + } else if (argc > 0) {
1.50 + add_command_line_packages(set, query, argc, argv);
1.51 + } else {
1.52 + printf("no arguments given for query/verify\n");
1.53 + exit(1);
1.54 + }
1.55 +
1.56 + return razor_package_query_finish(query);
1.57 +}
1.58 +
1.59 static void
1.60 print_package_properties(struct razor_set *set,
1.61 struct razor_package *package,
1.62 @@ -377,7 +416,6 @@
1.63 struct razor_set *set;
1.64 struct razor_package_iterator *pi;
1.65 struct razor_package *package;
1.66 - struct razor_package_query *query;
1.67 const char *name, *version, *arch;
1.68
1.69 if (option_package) {
1.70 @@ -388,31 +426,7 @@
1.71 set = razor_set_open(repo_filename);
1.72 }
1.73
1.74 - if (option_all + option_whatprovides + option_whatrequires > 1) {
1.75 - printf("only one type of query/verify "
1.76 - "may be performed at a time\n");
1.77 - exit(1);
1.78 - }
1.79 -
1.80 - query = razor_package_query_create(set);
1.81 - if (option_all) {
1.82 - pi = razor_package_iterator_create(set);
1.83 - razor_package_query_add_iterator(query, pi);
1.84 - razor_package_iterator_destroy(pi);
1.85 - } else if (option_whatrequires) {
1.86 - add_property_packages(set, query,
1.87 - argv[0], NULL, RAZOR_PROPERTY_REQUIRES);
1.88 - } else if (option_whatprovides) {
1.89 - add_property_packages(set, query,
1.90 - argv[0], NULL, RAZOR_PROPERTY_PROVIDES);
1.91 - } else if (argc > 0) {
1.92 - add_command_line_packages(set, query, argc, argv);
1.93 - } else {
1.94 - printf("no arguments given for query\n");
1.95 - exit(1);
1.96 - }
1.97 -
1.98 - pi = razor_package_query_finish(query);
1.99 + pi = get_query_packages(set, argc, argv);
1.100
1.101 while (razor_package_iterator_next(pi, &package,
1.102 &name, &version, &arch)) {
1.103 @@ -449,12 +463,28 @@
1.104 static void
1.105 command_verify(int argc, const char *argv[])
1.106 {
1.107 - if (argc == 0) {
1.108 - printf("no arguments given for verify\n");
1.109 - exit(1);
1.110 + struct razor_set *set;
1.111 + struct razor_package_iterator *pi;
1.112 + struct razor_package *package;
1.113 + const char *name, *version, *arch;
1.114 +
1.115 + if (option_package) {
1.116 + set = create_set_from_command_line(argc, argv);
1.117 + argc = 0;
1.118 + option_all = 1;
1.119 + } else {
1.120 + set = razor_set_open(repo_filename);
1.121 }
1.122
1.123 - printf("command verify - not implemented\n");
1.124 + pi = get_query_packages(set, argc, argv);
1.125 +
1.126 + while (razor_package_iterator_next(pi, &package,
1.127 + &name, &version, &arch)) {
1.128 + printf("verify %s-%s.%s - not implemented\n",
1.129 + name, version, arch);
1.130 + }
1.131 +
1.132 + razor_package_iterator_destroy(pi);
1.133 }
1.134
1.135 static void