summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2011-03-17 13:26:39 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2011-03-17 13:26:39 +0100
commit6365e985bca2e57ffb673e81e3162e426947e8a7 (patch)
tree55ed83dfb30d7f240a8bbac9c88ff034636ced43 /src/lib
parente08e5ffa890706a949323efd8a18685c3e053eb0 (diff)
parent048f1134d647362f3dd802202100cc0254b827e0 (diff)
Merge branch 'cli'
* cli: cli: load ~/.abrt/events/foo.conf expose export/unexport_event_config
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/event_config.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib/event_config.c b/src/lib/event_config.c
index 43c9e764..3f760214 100644
--- a/src/lib/event_config.c
+++ b/src/lib/event_config.c
@@ -246,3 +246,37 @@ event_config_t *get_event_config(const char *name)
}
return g_hash_table_lookup(g_event_config_list, name);
}
+
+GList *export_event_config(const char *event_name)
+{
+ GList *env_list = NULL;
+
+ event_config_t *config = get_event_config(event_name);
+ if (config)
+ {
+ for (GList *lopt = config->options; lopt; lopt = lopt->next)
+ {
+ event_option_t *opt = lopt->data;
+ if (!opt->value)
+ continue;
+ char *var_val = xasprintf("%s=%s", opt->name, opt->value);
+ VERB3 log("Exporting '%s'", var_val);
+ env_list = g_list_prepend(env_list, var_val);
+ putenv(var_val);
+ }
+ }
+
+ return env_list;
+}
+
+void unexport_event_config(GList *env_list)
+{
+ while (env_list)
+ {
+ char *var_val = env_list->data;
+ VERB3 log("Unexporting '%s'", var_val);
+ safe_unsetenv(var_val);
+ env_list = g_list_remove(env_list, var_val);
+ free(var_val);
+ }
+}