1 #define _POSIX_C_SOURCE 2
12 fprintf(stderr, "zpm-findpkg [-I] [-s <status> ...] [-S <status>] [package]\n");
15 int main(int ac, char **av){
21 int set = 0, clear = 0, showcurrent = 0;
22 int check = 0, quiet = 0, checkfail = 0, verbose = 0;
23 char hash[ZPM_HASH_STRLEN+1] = { 0 };
24 char *pkgid = 0, *current = 0, *display = hash;
26 dbfile = getenv("ZPMDB");
28 dbfile = "/var/lib/zpm/local.db";
36 while ((opt = getopt(ac, av, "f:sScqev")) != -1) {
38 case 'f': dbfile = optarg; break;
39 case 's': set = 1; break;
40 case 'S': clear = 1; break;
41 case 'c': check = 1; break;
42 case 'q': quiet = 1; break;
43 case 'e': showcurrent = 1; break;
44 case 'v': verbose = 1; break;
54 fprintf(stderr, "must specify db\n");
58 if (zpm_open(&pkg, dbfile)) {
59 pkgid = zpm_findpkg(&pkg, av[argn], NULL);
63 if (check || showcurrent) {
64 current = zpm_package_gethash(&pkg, pkgid, 0);
68 fail = zpm_package_checkhash(&pkg, pkgid, 0);
70 fail = zpm_package_sethash(&pkg, pkgid, hash);
72 fail = zpm_package_clearhash(&pkg, pkgid);
73 } else if (showcurrent) {
76 fail = zpm_package_hash(&pkg, pkgid, hash);
80 if (display && !quiet && !fail) {
84 printf("%s\n", display);
89 return checkfail ? EXIT_FAILURE : 0;