diff options
author | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-11-23 23:26:36 (EST) |
---|---|---|
committer | graham.gower <graham.gower@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2009-11-23 23:26:36 (EST) |
commit | 83137c7907329b8529e4a6b9f0bc6317927ae36c (patch) | |
tree | 640b4666912ae6c14a610c7acc3c7d4592a0a4a0 /libopkg | |
parent | ad0e06f0154e7217355c6480f3b117d474fd3f09 (diff) |
Remove dead code in opkg_remove_cmd().
git-svn-id: http://opkg.googlecode.com/svn/trunk@358 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg')
-rw-r--r-- | libopkg/opkg_cmd.c | 106 |
1 files changed, 33 insertions, 73 deletions
diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c index de2e6ca..b7abd15 100644 --- a/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c @@ -845,91 +845,51 @@ static int opkg_install_pending_cmd(opkg_conf_t *conf, int argc, char **argv) static int opkg_remove_cmd(opkg_conf_t *conf, int argc, char **argv) { - int i,a,done; + int i, a, done; pkg_t *pkg; pkg_t *pkg_to_remove; pkg_vec_t *available; + global_conf = conf; + done = 0; + signal(SIGINT, sigint_handler); -// ENH: Add the "no pkg removed" just in case. + pkg_info_preinstall_check(conf); - done = 0; + available = pkg_vec_alloc(); + pkg_hash_fetch_all_installed(&conf->pkg_hash, available); - pkg_info_preinstall_check(conf); - if ( argc > 0 ) { - available = pkg_vec_alloc(); - pkg_hash_fetch_all_installed(&conf->pkg_hash, available); - for (i=0; i < argc; i++) { - for (a=0; a < available->len; a++) { - pkg = available->pkgs[a]; - if (fnmatch(argv[i], pkg->name, 0)) { - continue; - } - if (conf->restrict_to_default_dest) { - pkg_to_remove = pkg_hash_fetch_installed_by_name_dest(&conf->pkg_hash, - pkg->name, - conf->default_dest); - } else { - pkg_to_remove = pkg_hash_fetch_installed_by_name(&conf->pkg_hash, pkg->name ); - } + for (i=0; i<argc; i++) { + for (a=0; a<available->len; a++) { + pkg = available->pkgs[a]; + if (fnmatch(argv[i], pkg->name, 0)) { + continue; + } + if (conf->restrict_to_default_dest) { + pkg_to_remove = pkg_hash_fetch_installed_by_name_dest(&conf->pkg_hash, + pkg->name, + conf->default_dest); + } else { + pkg_to_remove = pkg_hash_fetch_installed_by_name(&conf->pkg_hash, pkg->name ); + } - if (pkg_to_remove == NULL) { - opkg_message(conf, OPKG_ERROR, "Package %s is not installed.\n", pkg->name); - continue; - } - if (pkg->state_status == SS_NOT_INSTALLED) { // Added the control, so every already removed package could be skipped - opkg_message(conf, OPKG_ERROR, "Package seems to be %s not installed (STATUS = NOT_INSTALLED).\n", pkg->name); - continue; - } - opkg_remove_pkg(conf, pkg_to_remove,0); - done = 1; - } + if (pkg_to_remove == NULL) { + opkg_message(conf, OPKG_ERROR, "Package %s is not installed.\n", pkg->name); + continue; + } + if (pkg->state_status == SS_NOT_INSTALLED) { // Added the control, so every already removed package could be skipped + opkg_message(conf, OPKG_ERROR, "Package seems to be %s not installed (STATUS = NOT_INSTALLED).\n", pkg->name); + continue; + } + opkg_remove_pkg(conf, pkg_to_remove, 0); + done = 1; } - pkg_vec_free(available); - } else { - pkg_vec_t *installed_pkgs = pkg_vec_alloc(); - int i; - int flagged_pkg_count = 0; - int removed; - - pkg_hash_fetch_all_installed(&conf->pkg_hash, installed_pkgs); - - for (i = 0; i < installed_pkgs->len; i++) { - pkg_t *pkg = installed_pkgs->pkgs[i]; - if (pkg->state_flag & SF_USER) { - flagged_pkg_count++; - } else { - if (!pkg_has_installed_dependents(conf, pkg->parent, pkg, NULL)) - opkg_message(conf, OPKG_NOTICE, "Non-user leaf package: %s\n", pkg->name); - } - } - if (!flagged_pkg_count) { - opkg_message(conf, OPKG_NOTICE, "No packages flagged as installed by user, \n" - "so refusing to uninstall unflagged non-leaf packages\n"); - return 0; - } - - /* find packages not flagged SF_USER (i.e., installed to - * satisfy a dependence) and not having any dependents, and - * remove them */ - do { - removed = 0; - for (i = 0; i < installed_pkgs->len; i++) { - pkg_t *pkg = installed_pkgs->pkgs[i]; - if (!(pkg->state_flag & SF_USER) - && !pkg_has_installed_dependents(conf, pkg->parent, pkg, NULL)) { - removed++; - opkg_message(conf, OPKG_NOTICE, "Removing non-user leaf package %s\n"); - opkg_remove_pkg(conf, pkg,0); - done = 1; - } - } - } while (removed); - pkg_vec_free(installed_pkgs); } - if ( done == 0 ) + pkg_vec_free(available); + + if (done == 0) opkg_message(conf, OPKG_NOTICE, "No packages removed.\n"); write_status_files_if_changed(conf); |