Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Make pkg_jobs_apply knos about: PKG_JOBS_UPGRADE PKG_JOBS_AUTOREMOVE
Baptiste Daroussin committed 13 years ago
commit 48537414bf248dbfdfe1d5f70ca86c8195667038
parent f79cb69
2 files changed +18 -0
modified libpkg/pkg.h
@@ -316,6 +316,10 @@ typedef enum _pkg_plugin_hook_t {
	PKG_PLUGIN_HOOK_PRE_FETCH,
	PKG_PLUGIN_HOOK_POST_FETCH,
	PKG_PLUGIN_HOOK_EVENT,
+
	PKG_PLUGIN_HOOK_PRE_UPGRADE,
+
	PKG_PLUGIN_HOOK_POST_UPGRADE,
+
	PKG_PLUGIN_HOOK_PRE_AUTOREMOVE,
+
	PKG_PLUGIN_HOOK_POST_AUTOREMOVE,
} pkg_plugin_hook_t;

/**
modified libpkg/pkg_jobs.c
@@ -534,6 +534,11 @@ pkg_jobs_apply(struct pkg_jobs *j)
{
	int rc;

+
	if (!j->solved) {
+
		pkg_emit_error("The jobs hasn't been solved");
+
		return (EPKG_FATAL);
+
	}
+

	switch (j->type) {
	case PKG_JOBS_INSTALL:
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_PRE_INSTALL, j, j->db);
@@ -550,6 +555,15 @@ pkg_jobs_apply(struct pkg_jobs *j)
		rc = pkg_jobs_fetch(j);
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_POST_FETCH, j, j->db);
		break;
+
	case PKG_JOBS_UPGRADE:
+
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_PRE_UPGRADE, j, j->db);
+
		rc = pkg_jobs_install(j);
+
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_POST_UPGRADE, j, j->db);
+
	case PKG_JOBS_AUTOREMOVE:
+
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_PRE_AUTOREMOVE, j, j->db);
+
		rc = pkg_jobs_deinstall(j);
+
		pkg_plugins_hook_run(PKG_PLUGIN_HOOK_POST_AUTOREMOVE, j, j->db);
+
		break;
	default:
		rc = EPKG_FATAL;
		pkg_emit_error("bad jobs argument");