diff options
| author | Nikola Pajkovsky <npajkovs@redhat.com> | 2011-03-17 13:26:39 +0100 |
|---|---|---|
| committer | Nikola Pajkovsky <npajkovs@redhat.com> | 2011-03-17 13:26:39 +0100 |
| commit | 6365e985bca2e57ffb673e81e3162e426947e8a7 (patch) | |
| tree | 55ed83dfb30d7f240a8bbac9c88ff034636ced43 /src/lib | |
| parent | e08e5ffa890706a949323efd8a18685c3e053eb0 (diff) | |
| parent | 048f1134d647362f3dd802202100cc0254b827e0 (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.c | 34 |
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); + } +} |
