Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Allow multiple pattern in only line
Baptiste Daroussin committed 15 years ago
commit 2343f2c3b91d3cae118bb8f8bc006d6c00d0bf1f
parent 4fd2bd4
1 file changed +67 -64
modified pkg/info.c
@@ -74,6 +74,7 @@ exec_info(int argc, char **argv)
	int ret;
	int retcode = 0;
	bool gotone = false;
+
	int j;

	/* TODO: exclusive opts ? */
	while ((ch = getopt(argc, argv, "egxXdrlsqopO")) != -1) {
@@ -143,85 +144,87 @@ exec_info(int argc, char **argv)
		return (-1);
	}

-
	if ((it = pkgdb_query(db, argv[0], match)) == NULL) {
-
		pkg_error_warn("can not query database");
-
		return (-1);
-
	}
+
	for (j = 0; j < argc; j++) {
+
		if ((it = pkgdb_query(db, argv[j], match)) == NULL) {
+
			pkg_error_warn("can not query database");
+
			return (-1);
+
		}

-
	/* this is place for compatibility hacks */
+
		/* this is place for compatibility hacks */

-
	/* ports infrastructure expects pkg info -q -O to always return 0 even
-
	 * if the ports doesn't exists */
-
	if (opt & INFO_ORIGIN_SEARCH)
-
		gotone = true;
+
		/* ports infrastructure expects pkg info -q -O to always return 0 even
+
		 * if the ports doesn't exists */
+
		if (opt & INFO_ORIGIN_SEARCH)
+
			gotone = true;

-
	/* end of compatibility hacks */
+
		/* end of compatibility hacks */

-
	while ((ret = pkgdb_it_next(it, &pkg, query_flags)) == EPKG_OK) {
-
		gotone = true;
+
		while ((ret = pkgdb_it_next(it, &pkg, query_flags)) == EPKG_OK) {
+
			gotone = true;

-
		if (opt & INFO_EXISTS) {
-
			retcode = 0;
-
		} else if (opt & INFO_PRINT_DEP) {
-
			if (!(opt & INFO_QUIET))
-
				printf("%s-%s depends on:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
+
			if (opt & INFO_EXISTS) {
+
				retcode = 0;
+
			} else if (opt & INFO_PRINT_DEP) {
+
				if (!(opt & INFO_QUIET))
+
					printf("%s-%s depends on:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));

-
			deps = pkg_deps(pkg);
-
			for (i = 0; deps[i] != NULL; i++) {
-
				printf("%s-%s\n", pkg_get(deps[i], PKG_NAME), pkg_get(deps[i], PKG_VERSION));
-
			}
+
				deps = pkg_deps(pkg);
+
				for (i = 0; deps[i] != NULL; i++) {
+
					printf("%s-%s\n", pkg_get(deps[i], PKG_NAME), pkg_get(deps[i], PKG_VERSION));
+
				}

-
			if (!(opt & INFO_QUIET))
-
				printf("\n");
-
		} else if (opt & INFO_PRINT_RDEP) {
-
			printf("%s-%s is required by:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
+
				if (!(opt & INFO_QUIET))
+
					printf("\n");
+
			} else if (opt & INFO_PRINT_RDEP) {
+
				printf("%s-%s is required by:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));

-
			deps = pkg_rdeps(pkg);
-
			for (i = 0; deps[i] != NULL; i++) {
-
				printf("%s-%s\n", pkg_get(deps[i], PKG_NAME), pkg_get(deps[i], PKG_VERSION));
-
			}
+
				deps = pkg_rdeps(pkg);
+
				for (i = 0; deps[i] != NULL; i++) {
+
					printf("%s-%s\n", pkg_get(deps[i], PKG_NAME), pkg_get(deps[i], PKG_VERSION));
+
				}

-
			printf("\n");
-
		} else if (opt & INFO_LIST_FILES) {
-
			printf("%s-%s owns the following files:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
+
				printf("\n");
+
			} else if (opt & INFO_LIST_FILES) {
+
				printf("%s-%s owns the following files:\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));

-
			files = pkg_files(pkg);
-
			for (i = 0; files[i] != NULL; i++) {
-
				printf("%s\n", pkg_file_path(files[i]));
-
			}
+
				files = pkg_files(pkg);
+
				for (i = 0; files[i] != NULL; i++) {
+
					printf("%s\n", pkg_file_path(files[i]));
+
				}

-
			printf("\n");
-
		} else if (opt & INFO_SIZE) {
-
			humanize_number(size, sizeof(size), pkg_flatsize(pkg), "B", HN_AUTOSCALE, 0);
-
			printf("%s-%s size is %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), size);
-
		} else if (opt & INFO_ORIGIN) {
-
			if (opt & INFO_QUIET)
-
				printf("%s\n", pkg_get(pkg, PKG_ORIGIN));
-
			else
-
				printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_ORIGIN));
-
		} else if (opt & INFO_PREFIX) {
-
			if (opt & INFO_QUIET)
-
				printf("%s\n", pkg_get(pkg, PKG_PREFIX));
-
			else
-
				printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_PREFIX));
-
		} else {
-
			if (opt & INFO_QUIET)
-
				printf("%s-%s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
-
			else
-
				printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_COMMENT));
+
				printf("\n");
+
			} else if (opt & INFO_SIZE) {
+
				humanize_number(size, sizeof(size), pkg_flatsize(pkg), "B", HN_AUTOSCALE, 0);
+
				printf("%s-%s size is %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), size);
+
			} else if (opt & INFO_ORIGIN) {
+
				if (opt & INFO_QUIET)
+
					printf("%s\n", pkg_get(pkg, PKG_ORIGIN));
+
				else
+
					printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_ORIGIN));
+
			} else if (opt & INFO_PREFIX) {
+
				if (opt & INFO_QUIET)
+
					printf("%s\n", pkg_get(pkg, PKG_PREFIX));
+
				else
+
					printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_PREFIX));
+
			} else {
+
				if (opt & INFO_QUIET)
+
					printf("%s-%s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION));
+
				else
+
					printf("%s-%s: %s\n", pkg_get(pkg, PKG_NAME), pkg_get(pkg, PKG_VERSION), pkg_get(pkg, PKG_COMMENT));
+
			}
+
		}
+
		if (ret != EPKG_END) {
+
			pkg_error_warn("can not iterate over results");
+
			retcode = -1;
		}
-
	}
-
	pkg_free(pkg);

-
	if (ret != EPKG_END) {
-
		pkg_error_warn("can not iterate over results");
-
		retcode = -1;
-
	}
+
		if (retcode == 0 && !gotone && match != MATCH_ALL)
+
			retcode = EX_SOFTWARE;

-
	if (retcode == 0 && !gotone && match != MATCH_ALL)
-
		retcode = EX_SOFTWARE;
+
		pkgdb_it_free(it);
+
	}
+
	pkg_free(pkg);

-
	pkgdb_it_free(it);
	pkgdb_close(db);

	return (retcode);