1 -- $Id: 550_remove_packages.lua,v 1.7 2005/04/04 20:38:50 cpressey Exp $
7 local num_keys = function(tab)
10 for k, v in tab do i = i + 1 end
14 local remove_packages = function()
15 local base = App.state.target:get_base()
16 local pkg_list = Package.list_all(base)
17 local ok, i, pkg_name, selected
20 if table.getn(pkg_list) == 0 then
22 "There are no packages installed on this system."
27 for i, pkg_name in pkg_list do
28 sel_pkgs[pkg_name] = false -- but present...
31 ok, sel_pkgs = StorageUI.select_packages{
32 name = _("Select Packages"),
33 short_desc = _("Select the packages you wish to remove from " ..
35 checkbox_name = _("Remove?"),
36 ok_name = _("Remove these Packages"),
37 cancel_name = _("Cancel"),
43 local cmds = CmdChain.new()
48 local pr = App.ui:new_progress_bar{
49 title = _("Calculating package dependencies...")
52 for pkg_name, selected in sel_pkgs do
59 for pkg_name, selected in sel_pkgs do
62 base, cmds, pkg_name, pkg_seen, pkg_done
65 pr:set_amount((i * 100) / n)
71 for pkg_name, selected in pkg_seen do
72 if not sel_pkgs[pkg_name] then
73 pkg_extra = pkg_extra .. pkg_name .. "\n"
77 if pkg_extra ~= "" then
78 if not App.ui:confirm(_(
79 "The following installed packages require " ..
80 "one or more of the packages you selected, " ..
81 "and will also be removed:\n\n%s\n" ..
82 "Is this acceptable?", pkg_extra
88 if cmds:execute() then
90 "%d/%d packages were successfully removed!",
91 num_keys(pkg_done), num_keys(pkg_seen)
95 "There were errors. " ..
96 "Some packages may not have been " ..
97 "successfully removed."
104 name = _("Remove Packages"),