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
56
57
58
59
60
61
62
63
64
65
66
|
-- acf model for packages (apk)
module (..., package.seeall)
require("apk")
require("fs")
require("format")
local configfile = "/etc/apk/apk.conf"
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()
local available = get_available()
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_config = function()
local config = format.parse_ini_file(fs.read_file(configfile), "")
local source = cfe({ value=config.APK_PATH or "", label="APK Source" })
return cfe({ type="group", value={source=source}, label="APK Config" })
end
set_config = function(newconfig)
-- FIXME - don't know how to validate
local success = true
if success then
fs.write_file(configfile, format.update_ini_file(fs.read_file(configfile) or "", "", "APK_PATH", newconfig.value.source.value))
else
newconfig.errtxt = "Failed to update config"
end
return newconfig
end
|