diff options
Diffstat (limited to 'skins-model.lua')
-rw-r--r-- | skins-model.lua | 15 |
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 |