Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Print all the pkg-messages in the end of the operations
Baptiste Daroussin committed 14 years ago
commit 334aa57cc62d9ce6c55f24311d6bd8bf3e26eb1f
parent 3403a12
5 files changed +28 -3
modified pkg/add.c
@@ -83,10 +83,15 @@ exec_add(int argc, char **argv)
	
	if(failedpkgcount > 0) {
		sbuf_finish(failedpkgs);
-
		printf("Failed to install the following %d package(s): %s.\n", failedpkgcount, sbuf_data(failedpkgs));
+
		printf("\nFailed to install the following %d package(s): %s.\n", failedpkgcount, sbuf_data(failedpkgs));
	}
	sbuf_delete(failedpkgs);

+
	if (messages != NULL) {
+
		sbuf_finish(messages);
+
		printf("%s", sbuf_data(messages));
+
	}
+

	return (retcode == EPKG_OK ? EX_OK : EX_SOFTWARE);
}

modified pkg/event.c
@@ -9,6 +9,7 @@

static off_t fetched = 0;
static char url[MAXPATHLEN+1];
+
struct sbuf *messages = NULL;

int
event_callback(void *data, struct pkg_event *ev)
@@ -46,8 +47,11 @@ event_callback(void *data, struct pkg_event *ev)
	case PKG_EVENT_INSTALL_FINISHED:
		printf(" done\n");
		pkg_get(ev->e_install_finished.pkg, PKG_MESSAGE, &message);
-
		if (message != NULL && message[0] != '\0')
-
			printf("%s\n", message);
+
		if (message != NULL && message[0] != '\0') {
+
			if (messages == NULL)
+
				messages = sbuf_new_auto();
+
			sbuf_cat(messages, message);
+
		}
		break;
	case PKG_EVENT_INTEGRITYCHECK_BEGIN:
		printf("Checking integrity...");
@@ -89,6 +93,10 @@ event_callback(void *data, struct pkg_event *ev)
		pkg_get(ev->e_already_installed.pkg, PKG_NAME, &name, PKG_VERSION, &version);
		printf("%s-%s already installed\n", name, version);
		break;
+
	case PKG_EVENT_MISSING_DEP:
+
		printf("missing dependency %s-%s", pkg_dep_get(ev->e_missing_dep.dep, PKG_DEP_NAME),
+
		    pkg_dep_get(ev->e_missing_dep.dep, PKG_DEP_VERSION));
+
		break;
	default:
		break;
	}
modified pkg/install.c
@@ -135,6 +135,11 @@ exec_install(int argc, char **argv)
		if (pkg_jobs_apply(jobs, 0) != EPKG_OK)
			goto cleanup;

+
	if (messages != NULL) {
+
		sbuf_finish(messages);
+
		printf("%s", sbuf_data(messages));
+
	}
+

	retcode = 0;

	cleanup:
modified pkg/pkgcli.h
@@ -108,4 +108,6 @@ int print_info(struct pkg * const pkg, unsigned int opt);
char *absolutepath(const char *src, char *dest, size_t dest_len);

int event_callback(void *data, struct pkg_event *ev);
+

+
extern struct sbuf *messages;
#endif
modified pkg/upgrade.c
@@ -125,6 +125,11 @@ exec_upgrade(int argc, char **argv)
		if (pkg_jobs_apply(jobs, 0) != EPKG_OK)
			goto cleanup;

+
	if (messages != NULL) {
+
		sbuf_finish(messages);
+
		printf("%s", sbuf_data(messages));
+
	}
+

	retcode = 0;

	cleanup: