}
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) {
* 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;
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);
}
zpm_close(&pkg);
if (display && !quiet) {
+ if (verbose) {
+ printf("%s ", pkgid);
+ }
printf("%s\n", display);
}
free(current);