Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a summary (numbers) of operations at the end of the output
Baptiste Daroussin committed 9 years ago
commit e7fcda1dd1ba518c48d23d7e425ead6aed0f6d84
parent 0bfeb77
8 files changed +73 -12
modified src/utils.c
@@ -55,6 +55,15 @@
#include "utlist.h"
#include "pkgcli.h"

+
struct jobs_sum_number {
+
	int install;
+
	int reinstall;
+
	int downgrade;
+
	int upgrade;
+
	int delete;
+
	int fetch;
+
};
+

void
append_yesno(bool r, char *yesnomsg, size_t len)
{
@@ -677,11 +686,10 @@ struct pkg_solved_display_item {
};

static void
-
set_jobs_summary_pkg(struct pkg_jobs *jobs,
-
		struct pkg *new_pkg, struct pkg *old_pkg,
-
		pkg_solved_t type, int64_t *oldsize,
-
		int64_t *newsize, int64_t *dlsize,
-
		struct pkg_solved_display_item **disp)
+
set_jobs_summary_pkg(struct pkg_jobs *jobs, struct pkg *new_pkg,
+
    struct pkg *old_pkg, pkg_solved_t type, int64_t *oldsize,
+
    int64_t *newsize, int64_t *dlsize, struct pkg_solved_display_item **disp,
+
    struct jobs_sum_number *sum)
{
	const char *oldversion, *repopath, *destdir;
	char path[MAXPATHLEN];
@@ -741,27 +749,29 @@ set_jobs_summary_pkg(struct pkg_jobs *jobs,
			switch (pkg_version_change_between(new_pkg, old_pkg)) {
			case PKG_DOWNGRADE:
				it->display_type = PKG_DISPLAY_DOWNGRADE;
+
				sum->downgrade++;
				break;
			case PKG_REINSTALL:
				it->display_type = PKG_DISPLAY_REINSTALL;
-

+
				sum->reinstall++;
				break;
			case PKG_UPGRADE:
				it->display_type = PKG_DISPLAY_UPGRADE;
-

+
				sum->upgrade++;
				break;
			}
			*oldsize += oldflatsize;
			*newsize += flatsize;
		} else {
			it->display_type = PKG_DISPLAY_INSTALL;
+
			sum->install++;
			*newsize += flatsize;
		}
		break;
	case PKG_SOLVED_DELETE:
		*oldsize += flatsize;
		it->display_type = PKG_DISPLAY_DELETE;
-

+
		sum->delete++;
		break;
	case PKG_SOLVED_UPGRADE_INSTALL:
	case PKG_SOLVED_UPGRADE_REMOVE:
@@ -773,7 +783,7 @@ set_jobs_summary_pkg(struct pkg_jobs *jobs,
	case PKG_SOLVED_FETCH:
		*newsize += pkgsize;
		it->display_type = PKG_DISPLAY_FETCH;
-

+
		sum->fetch++;
		if (destdir == NULL)
			pkg_repo_cached_name(new_pkg, path, sizeof(path));
		else
@@ -900,14 +910,17 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)
	struct pkg_solved_display_item *disp[PKG_DISPLAY_MAX], *cur, *tmp;
	bool first = true;
	size_t bytes_change, limbytes;
+
	struct jobs_sum_number sum;

	dlsize = oldsize = newsize = 0;
	type = pkg_jobs_type(jobs);
-
	memset(disp, 0, sizeof (disp));
+
	memset(disp, 0, sizeof(disp));
+
	memset(&sum, 0, sizeof(sum));

-
	while (pkg_jobs_iter(jobs, &iter, &new_pkg, &old_pkg, &type))
+
	while (pkg_jobs_iter(jobs, &iter, &new_pkg, &old_pkg, &type)) {
		set_jobs_summary_pkg(jobs, new_pkg, old_pkg, type, &oldsize,
-
			&newsize, &dlsize, disp);
+
		&newsize, &dlsize, disp, &sum);
+
	}

	for (type = 0; type < PKG_DISPLAY_MAX; type ++) {
		if (disp[type] != NULL) {
@@ -935,6 +948,27 @@ print_jobs_summary(struct pkg_jobs *jobs, const char *msg, ...)
	limbytes = pkg_object_int(pkg_config_get("WARN_SIZE_LIMIT"));
	bytes_change = (size_t)llabs(newsize - oldsize);

+
	puts("");
+
	if (sum.delete > 0) {
+
		printf("Number of packages to be removed: %d\n", sum.delete);
+
	}
+
	if (sum.install > 0) {
+
		printf("Number of packages to be installed: %d\n", sum.install);
+
	}
+
	if (sum.upgrade > 0) {
+
		printf("Number of packages to be upgraded: %d\n", sum.upgrade);
+
	}
+
	if (sum.reinstall > 0) {
+
		printf("Number of packages to be reinstalled: %d\n",
+
		    sum.reinstall);
+
	}
+
	if (sum.downgrade > 0) {
+
		printf("Number of packages to be downgraded: %d\n",
+
		    sum.downgrade);
+
	}
+
	if (sum.fetch > 0) {
+
		printf("Number of packages to be fetched: %d\n", sum.fetch);
+
	}
	/* Add an extra line before the size output. */
	if (bytes_change > limbytes || dlsize)
		puts("");
modified tests/frontend/conflicts-multirepo.sh
@@ -166,6 +166,8 @@ The following 2 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
	test2: 1 -> 1.1 [local2]
	test: 1 -> 1.1 [local2]
+

+
Number of packages to be upgraded: 2
${JAILED}[1/2] Deinstalling test2-1...
${JAILED}[1/2] Deleting files for test2-1:  done
${JAILED}[1/2] Installing test2-1.1...
modified tests/frontend/conflicts.sh
@@ -83,6 +83,9 @@ Installed packages to be REMOVED:

New packages to be INSTALLED:
	test2: 1
+

+
Number of packages to be removed: 1
+
Number of packages to be installed: 1
${JAILED}[1/2] Deinstalling test-1...
${JAILED}[1/2] Deleting files for test-1:  done
${JAILED}[2/2] Installing test2-1...
modified tests/frontend/issue1425.sh
@@ -168,6 +168,8 @@ New packages to be INSTALLED:
	pkgB: 1.0 [repoB]
	pkgC: 1.0 [repoB]
	pkgD: 1.0 [repoB]
+

+
Number of packages to be installed: 4
${JAILED}[1/4] Installing pkgD-1.0...
${JAILED}[1/4] Extracting pkgD-1.0:  done
${JAILED}[2/4] Installing pkgC-1.0...
@@ -210,6 +212,8 @@ The following 2 package(s) will be affected (of 0 checked):
Installed packages to be REINSTALLED:
	pkgA-1.0 [repoB]
	pkgD-1.0 [repoB]
+

+
Number of packages to be reinstalled: 2
${JAILED}[1/2] Reinstalling pkgD-1.0...
${JAILED}[1/2] Extracting pkgD-1.0:  done
${JAILED}[2/2] Reinstalling pkgA-1.0...
@@ -239,6 +243,8 @@ New packages to be INSTALLED:
	pkgB: 1.0 [repoA]
	pkgC: 1.0 [repoA]
	pkgD: 1.0 [repoA]
+

+
Number of packages to be installed: 4
${JAILED}[1/4] Installing pkgD-1.0...
${JAILED}[1/4] Extracting pkgD-1.0:  done
${JAILED}[2/4] Installing pkgC-1.0...
modified tests/frontend/issue1440.sh
@@ -203,6 +203,8 @@ New packages to be INSTALLED:
	pkgB: 1.0 [repoB]
	pkgC: 1.0 [repoB]
	pkgD: 1.0 [repoB]
+

+
Number of packages to be installed: 4
${JAILED}[1/4] Installing pkgD-1.0...
${JAILED}[1/4] Extracting pkgD-1.0:  done
${JAILED}[2/4] Installing pkgC-1.0...
modified tests/frontend/php-pr.sh
@@ -255,6 +255,10 @@ Installed packages to be UPGRADED:

Installed packages to be REINSTALLED:
	php53-extensions-1.6 (requires changed)
+

+
Number of packages to be installed: 1
+
Number of packages to be upgraded: 2
+
Number of packages to be reinstalled: 1
"

	atf_check \
@@ -278,6 +282,9 @@ Installed packages to be UPGRADED:

Installed packages to be REINSTALLED:
	php53-extensions-1.6 (requires changed)
+

+
Number of packages to be upgraded: 2
+
Number of packages to be reinstalled: 1
"
	atf_check \
		-o inline:"${OUTPUT}" \
modified tests/frontend/requires.sh
@@ -67,6 +67,8 @@ The following 2 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
	b: 1.0
	a: 1.0
+

+
Number of packages to be installed: 2
"
	atf_check \
	    -o inline:"${OUTPUT}" \
modified tests/frontend/rubypuppet.sh
@@ -349,6 +349,11 @@ Installed packages to be REINSTALLED:
	rubygem-ruby-augeas-1.0 (direct dependency changed: ruby21-gems)
	rubygem-hiera-1.0 (direct dependency changed: ruby21-gems)
	puppet-1.0 (direct dependency changed: ruby)
+

+
Number of packages to be removed: 1
+
Number of packages to be installed: 1
+
Number of packages to be upgraded: 1
+
Number of packages to be reinstalled: 3
"

	atf_check \