summaryrefslogtreecommitdiffstats
path: root/squid-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-11-22 15:00:05 +0000
committerTed Trask <ttrask01@yahoo.com>2008-11-22 15:00:05 +0000
commitd41ac890afab7ceea8e89907b1d8b5b0fa825498 (patch)
tree0e045fd874d807326c15ddcc9cf8bfab592ccee2 /squid-model.lua
parentb29f2da408e9654c90d2a183b11025c4f1fa53eb (diff)
downloadacf-squid-d41ac890afab7ceea8e89907b1d8b5b0fa825498.tar.bz2
acf-squid-d41ac890afab7ceea8e89907b1d8b5b0fa825498.tar.xz
Enhanced squid to view and edit files within /etc/squid.
git-svn-id: svn://svn.alpinelinux.org/acf/squid/trunk@1609 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'squid-model.lua')
-rw-r--r--squid-model.lua63
1 files changed, 63 insertions, 0 deletions
diff --git a/squid-model.lua b/squid-model.lua
index a726b96..ab2dc5c 100644
--- a/squid-model.lua
+++ b/squid-model.lua
@@ -12,6 +12,7 @@ local squidconf = "/etc/squid/squid.conf"
local squiddigestusers = "/etc/squid/users.list"
local processname = "squid"
local packagename = "squid"
+local baseurl = "/etc/squid/"
local config, configcontent
@@ -384,3 +385,65 @@ delete_acl = function(linenum)
return acl
end
--]]
+
+function listfiles()
+ local retval = cfe({ type="list", value={}, label="Squid Files" })
+ if not fs.is_dir(baseurl) then posix.mkdir(baseurl) end
+ for file in posix.files(baseurl) do
+ file = baseurl..file
+ if fs.is_file(file) and file ~= squidconf and file ~= squiddigestusers then
+ table.insert(retval.value, file)
+ end
+ end
+ return retval
+end
+
+function getnewfile()
+ local filename = cfe({ label="File Name", descr="Must be in "..baseurl })
+ return cfe({ type="group", value={filename=filename}, label="Squid File" })
+end
+
+function createfile(filedetails)
+ local success = true
+
+ if not validator.is_valid_filename(filedetails.value.filename.value, baseurl) then
+ success = false
+ filedetails.value.filename.errtxt = "Invalid filename"
+ else
+ if not fs.is_dir(baseurl) then posix.mkdir(baseurl) end
+ if posix.stat(filedetails.value.filename.value) then
+ success = false
+ filedetails.value.filename.errtxt = "Filename already exists"
+ end
+ end
+
+ if success then
+ fs.create_file(filedetails.value.filename.value)
+ else
+ filedetails.errtxt = "Failed to Create File"
+ end
+
+ return filedetails
+end
+
+function readfile(filename)
+ return modelfunctions.getfiledetails(filename, listfiles().value)
+end
+
+function updatefile(filedetails)
+ return modelfunctions.setfiledetails(filedetails, listfiles().value)
+end
+
+function deletefile(filename)
+ local retval = cfe({ label="Delete Squid File result", errtxt = "Failed to delete Squid File - invalid filename" })
+ for i,file in ipairs(listfiles().value) do
+ if filename == file then
+ retval.value = "Deleted Squid File"
+ retval.errtxt = nil
+ os.remove(filename)
+ break
+ end
+ end
+
+ return retval
+end