Add macro %isu_package to generate ISU Package
[platform/upstream/rpm.git] / rpmqpack.c
1 #include <sys/types.h>
2 #include <limits.h>
3 #include <fcntl.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7
8 #include <db.h>
9
10 DBT key;
11 DBT data;
12
13 int
14 main(int argc, char **argv)
15 {
16   DB *db = 0;
17   DBC *dbc = 0;
18   int ret = 0;
19
20   if (db_create(&db, 0, 0))
21     {
22       perror("db_create");
23       exit(1);
24     }
25   if (db->open(db, 0, "/var/lib/rpm/Name", 0, DB_UNKNOWN, DB_RDONLY, 0664))
26     {
27       perror("db->open");
28       exit(1);
29     }
30   if (argc == 1)
31     {
32       if (db->cursor(db, NULL, &dbc, 0))
33         {
34           perror("db->cursor");
35           exit(1);
36         }
37       while (dbc->c_get(dbc, &key, &data, DB_NEXT) == 0)
38         printf("%*.*s\n", (int)key.size, (int)key.size, (char *)key.data);
39       dbc->c_close(dbc);
40     }
41   else
42     {
43       argc--;
44       while (argc--)
45         {
46           argv++;
47           key.data = (void *)*argv;
48           key.size = strlen(*argv);
49           data.data = NULL;
50           data.size = 0;
51           if (db->get(db, 0, &key, &data, 0) == 0)
52             printf("%s\n", *argv);
53           else
54             ret = 1;
55         }
56     }
57   db->close(db, 0);
58   return ret;
59 }