diff options
author | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-15 00:10:32 (EST) |
---|---|---|
committer | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-15 00:10:32 (EST) |
commit | 290389440afaabe6c151481cd9e7a106a0dc3d92 (patch) | |
tree | cb55f09431d08a16b9ebf8df3233690e5e21335d /libopkg/opkg.c | |
parent | c4e896ceda14cb1515625b020c705b521f0e306d (diff) |
libopkg: add opkg_read_config_files() function
git-svn-id: http://opkg.googlecode.com/svn/trunk@77 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/opkg.c')
-rw-r--r-- | libopkg/opkg.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/libopkg/opkg.c b/libopkg/opkg.c index 54e1a69..f72bd78 100644 --- a/libopkg/opkg.c +++ b/libopkg/opkg.c @@ -107,6 +107,49 @@ opkg_free (opkg_t *opkg) args_deinit (opkg->args); } +int +opkg_read_config_files (opkg_t *opkg) +{ + args_t *a = opkg->args; + opkg_conf_t *c = opkg->conf; + + /* Unfortunatly, the easiest way to re-read the config files right now is to + * throw away opkg->conf and start again */ + + /* copy the settings we need to keep */ + a->autoremove = c->autoremove; + a->force_depends = c->force_depends; + a->force_defaults = c->force_defaults; + a->force_overwrite = c->force_overwrite; + a->force_downgrade = c->force_downgrade; + a->force_reinstall = c->force_reinstall; + a->force_removal_of_dependent_packages = c->force_removal_of_dependent_packages; + a->force_removal_of_essential_packages = c->force_removal_of_essential_packages; + a->nodeps = c->nodeps; + a->noaction = c->noaction; + a->query_all = c->query_all; + a->multiple_providers = c->multiple_providers; + a->verbosity = c->verbosity; + + if (a->offline_root) free (a->offline_root); + a->offline_root = strdup (c->offline_root); + + if (a->offline_root_pre_script_cmd) free (a->offline_root_pre_script_cmd); + a->offline_root_pre_script_cmd = strdup (c->offline_root_pre_script_cmd); + + if (a->offline_root_post_script_cmd) free (a->offline_root_post_script_cmd); + a->offline_root_post_script_cmd = strdup (c->offline_root_post_script_cmd); + + /* throw away old opkg_conf and start again */ + opkg_conf_deinit (opkg->conf); + opkg_conf_init (opkg->conf, opkg->args); + + free (opkg->options); + opkg_init_options_array (opkg->conf, &opkg->options); + + return 0; +} + void opkg_get_option (opkg_t *opkg, char *option, void **value) { |