summaryrefslogtreecommitdiffhomepage
path: root/src/ffluci/fs.lua
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-03-02 21:52:58 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-03-02 21:52:58 +0000
commit3f5de3273c9e103b4909802e339db06fe0b53312 (patch)
tree793ef66c9456665f7b472e214d79b1078fccebe8 /src/ffluci/fs.lua
* new project: ff-luci - Freifunk Lua Configuration Interface
Diffstat (limited to 'src/ffluci/fs.lua')
-rw-r--r--src/ffluci/fs.lua71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/ffluci/fs.lua b/src/ffluci/fs.lua
new file mode 100644
index 000000000..5a1cc6b35
--- /dev/null
+++ b/src/ffluci/fs.lua
@@ -0,0 +1,71 @@
+--[[
+FFLuCI - Filesystem tools
+
+Description:
+A module offering often needed filesystem manipulation functions
+
+FileId:
+$Id$
+
+License:
+Copyright 2008 Steven Barth <steven@midlink.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+]]--
+
+module("ffluci.fs", package.seeall)
+
+require("lfs")
+
+-- Returns the content of file
+function readfile(filename)
+ local fp = io.open(filename)
+ if fp == nil then
+ error("Unable to open file for reading: " .. filename)
+ end
+ local data = fp:read("*a")
+ fp:close()
+ return data
+end
+
+-- Writes given data to a file
+function writefile(filename, data)
+ local fp = io.open(filename, "w")
+ if fp == nil then
+ error("Unable to open file for writing: " .. filename)
+ end
+ fp:write(data)
+ fp:close()
+end
+
+-- Returns the file modification date/time of "path"
+function mtime(path)
+ return lfs.attributes(path, "modification")
+end
+
+-- Simplified dirname function
+function dirname(file)
+ return string.gsub(file, "[^/]+$", "")
+end
+
+-- Diriterator - alias for lfs.dir - filter . and ..
+function dir(path)
+ local e = {}
+ for entry in lfs.dir(path) do
+ if not(entry == "." or entry == "..") then
+ table.insert(e, entry)
+ end
+ end
+ return e
+end \ No newline at end of file