Example #1
0
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");
}
Example #2
0
/* 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;
}