X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libopkg%2Fopkg.c;h=b4aff139b3b53b66721e988ae4244c4412c4dde9;hb=922c14bca8e95e1d507ece63e0464f45dc92443c;hp=54e1a6956597891ed343f08bcfcab0fc8ee1f973;hpb=877f281ecc4ee8a641de6a68d21b294034e4d657;p=oweals%2Fopkg-lede.git diff --git a/libopkg/opkg.c b/libopkg/opkg.c index 54e1a69..b4aff13 100644 --- a/libopkg/opkg.c +++ b/libopkg/opkg.c @@ -107,6 +107,58 @@ 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 (c->offline_root) + { + if (a->offline_root) free (a->offline_root); + a->offline_root = strdup (c->offline_root); + } + + if (c->offline_root_pre_script_cmd) + { + 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 (c->offline_root_post_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) {