-- acf model for packages (apk) module (..., package.seeall) require("apk") require("modelfunctions") local configfile = "/etc/apk/repositories" get_all_packages = function() -- read in all of the packages return cfe({ type="list", value=apk.get_all(), label="All Packages"}) end get_loaded_packages = function() -- read in the loaded packages return cfe({ type="list", value=apk.get_loaded(), label="Loaded Packages"}) end get_available_packages = function() -- available are all except loaded return cfe({ type="list", value=apk.get_available(), label="Available Packages" }) end get_packages = function() local loaded = get_loaded_packages() local available = get_available_packages() return cfe({ type="group", value={loaded=loaded, available=available} }) end delete_package = function(package, sessiondata) local success, cmdresult = apk.delete(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 success, cmdresult = apk.install(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 get_configfile = function() return modelfunctions.getfiledetails(configfile) end update_configfile = function(newconfig) return modelfunctions.setfiledetails(newconfig, {configfile}) end