summaryrefslogtreecommitdiffstats
path: root/apk-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'apk-model.lua')
-rw-r--r--apk-model.lua67
1 files changed, 15 insertions, 52 deletions
diff --git a/apk-model.lua b/apk-model.lua
index 186ef77..53b3c9f 100644
--- a/apk-model.lua
+++ b/apk-model.lua
@@ -1,46 +1,23 @@
-- acf model for packages (apk)
module (..., package.seeall)
require("getopts")
+require("apk")
local configfile = "/etc/apk/apk.conf"
get_all_packages = function()
-- read in all of the packages
- local cmd = "/sbin/apk_fetch -l 2>/dev/null"
- local f = io.popen( cmd )
- local all = {}
- for line in f:lines() do all[#all + 1] = line end
- f:close()
- return cfe({ type="list", value=all, label="All Packages"})
+ return cfe({ type="list", value=apk.get_all_packages(), label="All Packages"})
end
get_loaded_packages = function()
-- read in the loaded packages
- local cmd = "/sbin/apk_info 2>/dev/null"
- local f = io.popen( cmd )
- local loaded = {}
- for line in f:lines() do
- local temp = {}
- temp.name = string.match(line, "(.-)-%d+.*")
- temp.version, temp.description = string.match(line, "([^ ]+) %- (.+)")
- loaded[#loaded+1] = temp
- end
- return cfe({ type="list", value=loaded, label="Loaded Packages"})
+ return cfe({ type="list", value=apk.get_loaded_packages(), label="Loaded Packages"})
end
-get_available_packages = function(_loaded_cfe, _all_cfe)
+get_available_packages = function()
-- available are all except loaded
- local loaded_cfe = _loaded_cfe or get_loaded_packages()
- local all_cfe = _all_cfe or get_all_packages()
- local loaded = loaded_cfe.value
- local all = all_cfe.value
- local available = {}
- local reverseloaded = {}
- for i,packagetable in ipairs(loaded) do reverseloaded[packagetable.name] = i end
- for i,package in ipairs(all) do
- if (reverseloaded[package]==nil) then available[#available + 1] = package end
- end
- return cfe({ type="list", value=available, label="Available Packages" })
+ return cfe({ type="list", value=apk.get_available_packages(), label="Available Packages" })
end
get_packages = function()
@@ -50,35 +27,21 @@ get_packages = function()
end
delete_package = function(package, sessiondata)
- local cmdresult = "Delete failed - Invalid package"
- local loaded = get_loaded_packages()
- for i,pack in pairs(loaded.value) do
- if pack.name == package then
- local cmd = "/sbin/apk_delete " .. package .. " 2>&1"
- local f = io.popen( cmd )
- cmdresult = f:read("*a") or ""
- f:close()
- -- Destroy menu and permissions info in session so recalculated
- if sessiondata then sessiondata.menu = nil end
- if sessiondata then sessiondata.permissions = nil end
- end
+ local success, cmdresult = apk.delete_package(package)
+ if success then
+ -- Destroy menu and permissions info in session so recalculated
+ if sessiondata then sessiondata.menu = nil end
+ if sessiondata then sessiondata.permissions = nil end
end
return cfe({ value=cmdresult, label="Result of Delete" })
end
install_package = function(package,sessiondata)
- local cmdresult = "Install failed - Invalid package"
- local available = get_available_packages()
- for i,pack in pairs(available.value) do
- if pack == package then
- local cmd = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin apk_get install " .. package .. " 2>&1"
- local f = io.popen( cmd )
- cmdresult = f:read("*a")
- f:close()
- -- Destroy menu and permissions info in session so recalculated
- if sessiondata then sessiondata.menu = nil end
- if sessiondata then sessiondata.permissions = nil end
- end
+ local success, cmdresult = apk.install_package(package)
+ if success then
+ -- Destroy menu and permissions info in session so recalculated
+ if sessiondata then sessiondata.menu = nil end
+ if sessiondata then sessiondata.permissions = nil end
end
return cfe({ value=cmdresult, label="Result of Install" })
end