1 -- $Id: 500_install_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 install_packages = function()
15 local base = App.state.target:get_base()
16 local pkg_list = Package.list_all("")
17 local ok, i, pkg_name, selected
20 for i, pkg_name in pkg_list do
21 if not Package.exists(base, pkg_name) then
22 sel_pkgs[pkg_name] = false -- but present...
26 ok, sel_pkgs = StorageUI.select_packages{
27 name = _("Select Packages"),
28 short_desc = _("Select the packages you wish to install from " ..
29 "the LiveCD onto the HDD."),
30 checkbox_name = _("Install?"),
31 ok_name = _("Install these Packages"),
32 cancel_name = _("Cancel"),
38 local cmds = CmdChain.new()
43 local pr = App.ui:new_progress_bar{
44 title = _("Calculating package dependencies...")
47 for pkg_name, selected in sel_pkgs do
54 for pkg_name, selected in sel_pkgs do
57 base, cmds, pkg_name, pkg_seen, pkg_done
60 pr:set_amount((i * 100) / n)
66 for pkg_name, selected in pkg_seen do
67 if not sel_pkgs[pkg_name] then
68 pkg_extra = pkg_extra .. pkg_name .. "\n"
72 if pkg_extra ~= "" then
73 if not App.ui:confirm(_(
74 "The following packages are required to " ..
75 "support the packages you selected, and " ..
76 "will also be installed:\n\n%s\n" ..
77 "Is this acceptable?", pkg_extra
83 if cmds:execute() then
85 "%d/%d packages were successfully installed!",
86 num_keys(pkg_done), num_keys(pkg_seen)
90 "Errors occurred while installing packages. " ..
91 "Some packages may not have been " ..
92 "successfully installed."
99 name = _("Install Packages"),