Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Print plugin configuration in pkg -vv
Baptiste Daroussin committed 13 years ago
commit 752e267922247a7a163a09c49743af4af77b20af
parent b356d45
3 files changed +46 -0
modified libpkg/pkg.h
@@ -944,6 +944,7 @@ int pkg_plugin_conf_bool(struct pkg_plugin *p, int key, bool *value);
int pkg_plugin_conf_kvlist(struct pkg_plugin *p, int key, struct pkg_config_kv **kv);
int pkg_plugin_conf_list(struct pkg_plugin *p, int key, struct pkg_config_value **v);
int pkg_plugin_conf_integer(struct pkg_plugin *p, int key, int64_t *value);
+
int pkg_plugin_confs(struct pkg_plugin *p, struct pkg_config **conf);

int pkg_plugin_parse(struct pkg_plugin *p);

modified libpkg/plugins.c
@@ -541,6 +541,12 @@ pkg_plugin_conf_list(struct pkg_plugin *p, int key, struct pkg_config_value **v)
}

int
+
pkg_plugin_confs(struct pkg_plugin *p, struct pkg_config **conf)
+
{
+
	HASH_NEXT(p->conf, (*conf));
+
}
+

+
int
pkg_plugin_parse(struct pkg_plugin *p)
{
	char confpath[MAXPATHLEN];
modified pkg/main.c
@@ -317,6 +317,7 @@ main(int argc, char **argv)
				break;
			case PKG_CONFIG_KVLIST:
				printf("%s:\n", configname);
+
				kv = NULL;
				while (pkg_config_kvlist(pkg_config_id(conf), &kv) == EPKG_OK) {
					printf("\t- %s: %s\n", pkg_config_kv_get(kv, PKG_CONFIG_KV_KEY),
					    pkg_config_kv_get(kv, PKG_CONFIG_KV_VALUE));
@@ -324,11 +325,49 @@ main(int argc, char **argv)
				break;
			case PKG_CONFIG_LIST:
				printf("%s:\n", configname);
+
				list = NULL;
				while (pkg_config_list(pkg_config_id(conf), &list) == EPKG_OK) {
					printf("\t- %s\n", pkg_config_value(list));
				}
			}
		}
+
		while (pkg_plugins(&p) == EPKG_OK) {
+
			conf = NULL;
+
			printf("Configurations for plugin: %s\n", pkg_plugin_get(p, PKG_PLUGIN_NAME));
+
			while (pkg_plugin_confs(p, &conf) == EPKG_OK) {
+
				configname = pkg_config_name(conf);
+
				switch (pkg_config_type(conf)) {
+
				case PKG_CONFIG_STRING:
+
					pkg_plugin_conf_string(p, pkg_config_id(conf), &buf);
+
					if (buf == NULL)
+
						buf = "";
+
					printf("\t%s: %s\n", configname, buf);
+
					break;
+
				case PKG_CONFIG_BOOL:
+
					pkg_plugin_conf_bool(p, pkg_config_id(conf), &b);
+
					printf("\t%s: %s\n", configname, b ? "yes": "no");
+
					break;
+
				case PKG_CONFIG_INTEGER:
+
					pkg_plugin_conf_integer(p, pkg_config_id(conf), &integer);
+
					printf("\t%s: %"PRId64"\n", configname, integer);
+
					break;
+
				case PKG_CONFIG_KVLIST:
+
					printf("\t%s:\n", configname);
+
					kv = NULL;
+
					while (pkg_plugin_conf_kvlist(p, pkg_config_id(conf), &kv) == EPKG_OK) {
+
						printf("\t\t- %s: %s\n", pkg_config_kv_get(kv, PKG_CONFIG_KV_KEY),
+
						    pkg_config_kv_get(kv, PKG_CONFIG_KV_VALUE));
+
					}
+
					break;
+
				case PKG_CONFIG_LIST:
+
					printf("\t%s:\n", configname);
+
					list = NULL;
+
					while (pkg_plugin_conf_list(p, pkg_config_id(conf), &list) == EPKG_OK) {
+
						printf("\t\t- %s\n", pkg_config_value(list));
+
					}
+
				}
+
			}
+
		}
		pkg_shutdown();
		pkg_plugins_shutdown();
		exit(EX_OK);