diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-11-22 15:00:05 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-11-22 15:00:05 +0000 |
commit | d41ac890afab7ceea8e89907b1d8b5b0fa825498 (patch) | |
tree | 0e045fd874d807326c15ddcc9cf8bfab592ccee2 /squid-model.lua | |
parent | b29f2da408e9654c90d2a183b11025c4f1fa53eb (diff) | |
download | acf-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.lua | 63 |
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 |