void check(char **argv) { int filecnt, pkgcnt; filecnt = 0; pkgcnt = 0; setbuf(stdout, NULL); if (*argv == NULL) { check_pkg("*", &filecnt, &pkgcnt, 1); } else { for (; *argv != NULL; ++argv) check_pkg(*argv, &filecnt, &pkgcnt, 0); } printf("\n"); printf("Checked %d file%s from %d package%s.\n", filecnt, (filecnt == 1) ? "" : "s", pkgcnt, (pkgcnt == 1) ? "" : "s"); }
/* check mode */ int check_mode(char *pkgspec) { encap_list_t *ver_l; char *checkver; char pkg[MAXPATHLEN], name[MAXPATHLEN], ver[MAXPATHLEN] = ""; encap_listptr_t lp; int i; if (verbose) printf("epkg: checking package %s...\n", pkgspec); /* if versioning is off, simply install the specified package */ if (!BIT_ISSET(epkg_opts, EPKG_OPT_VERSIONING)) return check_pkg(pkgspec); if (verbose) printf(" > reading Encap source directory...\n"); ver_l = encap_list_new(LIST_USERFUNC, (encap_cmpfunc_t)encap_vercmp); if (ver_l == NULL) { fprintf(stderr, " ! encap_list_new(): %s\n", strerror(errno)); return -1; } i = encap_find_versions(source, pkgspec, version_list_add, ver_l); if (i == 0) { encap_pkgspec_parse(pkgspec, name, sizeof(name), ver, sizeof(ver), NULL, 0, NULL, 0); i = encap_find_versions(source, name, version_list_add, ver_l); if (i == 0) { fprintf(stderr, " ! no versions of package %s " "found!\n", pkgspec); return -1; } } else strlcpy(name, pkgspec, sizeof(name)); if (i == -2) return -1; if (i == -1) { fprintf(stderr, " ! find_pkg_versions(): %s\n", strerror(errno)); return -1; } if (verbose > 1) putchar('\n'); encap_listptr_reset(&lp); while (encap_list_prev(ver_l, &lp) != 0) { checkver = (char *)encap_listptr_data(&lp); encap_pkgspec_join(pkg, sizeof(pkg), name, checkver); i = check_pkg(pkg); } encap_list_free(ver_l, (encap_freefunc_t)free); return i; }