-- acf model for displaying logfiles recusivly module (..., package.seeall) -- no initializer in model - use controller.init for that local function set_skins(skin) --local addremove_opts = function ( addremove, file, variable, option ) -- if (string.lower(addremove) == "remove" ) then cmdtxt = "/bin/sed -i 's/skin=.*/skin=" .. skin .. "/' /etc/acf/acf.conf" -- /bin/sed 's/skin=.*/skin=plupp/' /etc/acf/acf.conf local cmd, error = io.popen ( cmdtxt ) local cmdoutput = cmd:read("*a") cmd:close() -- Cleanup the variable by removing unneccesary blanks -- cmdtxt = "/bin/sed -i 's/\\\"\\ /\\\"/g' " .. file -- cmdtxt = cmdtxt .. ";/bin/sed -i 's/\\ \\\"/\\\"/g' " .. file -- local cmd, error = io.popen ( cmdtxt ) -- cmd:close() -- elseif (string.lower(addremove) == "add" ) then -- cmdtxt = "/bin/sed -i 's/\\(" .. variable .. ".*\\)\\\"/\\1" .. option .. " \\\"/' " .. file -- local cmd, error = io.popen ( cmdtxt ) -- local cmdoutput = cmd:read("*a") -- cmd:close() -- end return cmdtxt end local function list_skins() local path = "/usr/share/acf/www/" local skinarray = {} local skins = {} local k,v for k,v in pairs(posix.dir(path) or {}) do -- Ignore files that begins with a '.' and 'cgi-bin' and only list folders if not ((string.match(v, "^%.")) or (string.match(v, "^cgi[-]bin")) or (posix.stat(path .. v).type ~= "directory")) then local f = v local current = conf.skin if (current == f) then table.insert(skinarray, {name=f, inuse="In use"}) else table.insert(skinarray, {name=f}) end end end return skinarray end get = function (self) return list_skins() end update = function (self,skin) local availableskins = list_skins() -- for k,v in pars(availableskins.skinarray.name) do -- if ( availableskins[k].name == skin) then return set_skins(skin) -- end -- end end