X-Git-Url: https://pd.if.org/git/?p=zpackage;a=blobdiff_plain;f=src%2Fpackagehash.c;h=ee4f67655d4f770327337057748afc7917476b11;hp=6d5b9128fabb5e4a007305f10637111af24dd649;hb=daab48f84d0b7faed09a41afab9f9fccf1356b8f;hpb=05b0022ef60e73eb446b272fa6481f1f8a479974 diff --git a/src/packagehash.c b/src/packagehash.c index 6d5b912..ee4f676 100644 --- a/src/packagehash.c +++ b/src/packagehash.c @@ -13,13 +13,14 @@ void usage(void) { } int main(int ac, char **av){ - int opt; + int opt, argn; struct zpm pkg; char *dbfile; int set = 0, clear = 0, showcurrent = 0; - int check = 0; - int quiet = 0; + int check = 0, quiet = 0, checkfail = 0, verbose = 0; + char hash[ZPM_HASH_STRLEN+1]; + char *pkgid = 0, *current = 0, *display = hash; dbfile = getenv("ZPMDB"); if (!dbfile) { @@ -31,7 +32,7 @@ int main(int ac, char **av){ * show current -e * check -c */ - while ((opt = getopt(ac, av, "f:sScqe")) != -1) { + while ((opt = getopt(ac, av, "f:sScqev")) != -1) { switch (opt) { case 'f': dbfile = optarg; break; case 's': set = 1; break; @@ -39,25 +40,25 @@ int main(int ac, char **av){ case 'c': check = 1; break; case 'q': quiet = 1; break; case 'e': showcurrent = 1; break; + case 'v': verbose = 1; break; default: usage(); exit(EXIT_FAILURE); break; } } - int argn = optind; + argn = optind; if (!dbfile) { fprintf(stderr, "must specify db\n"); return 1; } - char *pkgid = av[argn]; - char hash[ZPM_HASH_STRLEN+1]; - char *current = 0, *display = hash; - int checkfail = 0; - if (zpm_open(&pkg, dbfile)) { + pkgid = zpm_findpkg(&pkg, av[argn], NULL); + if (!pkgid) { + exit(EXIT_FAILURE); + } if (check || showcurrent) { current = zpm_db_string(&pkg, "select hash from packages_pkgid where pkgid = %Q", pkgid); } @@ -81,6 +82,9 @@ int main(int ac, char **av){ zpm_close(&pkg); if (display && !quiet) { + if (verbose) { + printf("%s ", pkgid); + } printf("%s\n", display); } free(current);