summaryrefslogtreecommitdiffstats
path: root/apk-model.lua
blob: 66a9a30dba7a33387a944dd3e9dd1b2e3d5b0b86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-- 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