Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Pass data to the plugins for processing
Marin Atanasov Nikolov committed 13 years ago
commit b0dec50cd7f14ee1259a8bdfdbc6f53a11edc027
parent da3566f
3 files changed +5 -5
modified libpkg/pkg.h
@@ -912,7 +912,7 @@ const char *pkg_plugins_get(struct pkg_plugins *p, pkg_plugins_key key);
 */
typedef int(*pkg_plugins_callback)(void *data);
int pkg_plugins_hook(const char *pluginname, pkg_plugins_hook_t hook, pkg_plugins_callback callback);
-
int pkg_plugins_hook_run(pkg_plugins_hook_t hook);
+
int pkg_plugins_hook_run(pkg_plugins_hook_t hook, void *data);

/**
 * Get the value of a configuration key
modified libpkg/pkg_jobs.c
@@ -324,9 +324,9 @@ pkg_jobs_apply(struct pkg_jobs *j)

	switch (j->type) {
	case PKG_JOBS_INSTALL:
-
		pkg_plugins_hook_run(PKG_PLUGINS_HOOK_PRE_INSTALL);
+
		pkg_plugins_hook_run(PKG_PLUGINS_HOOK_PRE_INSTALL, j);
		rc = pkg_jobs_install(j);
-
		pkg_plugins_hook_run(PKG_PLUGINS_HOOK_POST_INSTALL);
+
		pkg_plugins_hook_run(PKG_PLUGINS_HOOK_POST_INSTALL, j);
		break;
	case PKG_JOBS_DEINSTALL:
		rc = pkg_jobs_deinstall(j);
modified libpkg/plugins.c
@@ -345,14 +345,14 @@ pkg_plugins_hook(const char *pluginname, pkg_plugins_hook_t hook, pkg_plugins_ca
}

int
-
pkg_plugins_hook_run(pkg_plugins_hook_t hook)
+
pkg_plugins_hook_run(pkg_plugins_hook_t hook, void *data)
{
	struct pkg_plugins *p = NULL;

	while (pkg_plugins_list(&p) != EPKG_END) {
		if (pkg_plugins_is_loaded(p)) {
			if ((p->hook) & hook)
-
				p->callback(NULL);
+
				p->callback(data);
		}
	}