summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--skins-model.lua15
1 files changed, 10 insertions, 5 deletions
diff --git a/skins-model.lua b/skins-model.lua
index 620e7a7..d4f7c34 100644
--- a/skins-model.lua
+++ b/skins-model.lua
@@ -1,14 +1,19 @@
-- acf model for displaying logfiles recusivly
module (..., package.seeall)
+require("fs")
require("format")
local function set_skins(skin)
- local cmd = "/bin/sed -i 's/skin=.*/skin=" .. format.escapespecialcharacters(skin) .. "/' /etc/acf/acf.conf"
- local f, errtxt = io.popen(cmd)
- local cmdoutput = f:read("*a")
- if cmdoutput == "" then cmdoutput = "New skin selected" end
- f:close()
+ local conffile = "/etc/acf/acf.conf"
+ local content = "\n"..(fs.read_file(conffile) or "")
+ local count
+ content,count = string.gsub(content, "\n%s*skin%s*=[^\n]*", "\nskin="..format.escapespecialcharacters(skin))
+ if count == 0 then
+ content = "\nskin="..format.escapespecialcharacters(skin)..content
+ end
+ fs.write_file(conffile, string.sub(content,2))
+ local cmdoutput = "New skin selected"
return cmdoutput, errtxt
end