diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-07-04 20:58:29 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-07-04 20:58:29 +0000 |
commit | 101c4961e7737b65fb3d634d5198ff91b7d88409 (patch) | |
tree | 949a4f2775611e1420b3ba20232e900fcf756729 | |
parent | 6f81d5ac0698008ccca256663f1f057a8c894001 (diff) | |
download | acf-apk-tools-101c4961e7737b65fb3d634d5198ff91b7d88409.tar.bz2 acf-apk-tools-101c4961e7737b65fb3d634d5198ff91b7d88409.tar.xz |
Modified apk-tools model to use apk library.
git-svn-id: svn://svn.alpinelinux.org/acf/apk-tools/trunk@1281 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r-- | apk-model.lua | 67 |
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 |