new I/O file helper functions

This commit is contained in:
luke bonham 2014-01-29 11:56:32 +01:00
parent f87b80a92c
commit 3fc0ed44dc
4 changed files with 37 additions and 12 deletions

View File

@ -10,7 +10,8 @@
local debug = require("debug")
local capi = { timer = timer }
local io = { open = io.open }
local io = { open = io.open,
lines = io.lines }
local rawget = rawget
-- Lain helper functions for internal use
@ -30,18 +31,40 @@ end
-- }}}
-- {{{ Read the first line of a file or return nil
-- {{{ File operations
function helpers.first_line(f)
local fp = io.open(f)
if not fp
then
return nil
end
-- see if the file exists
function helpers.file_exists(file)
local f = io.open(file, "rb")
if f then f:close() end
return f ~= nil
end
local content = fp:read("*l")
fp:close()
return content
-- get all lines from a file, returns an empty
-- list/table if the file does not exist
function helpers.lines_from(file)
if not helpers.file_exists(file) then return {} end
lines = {}
for line in io.lines(file) do
lines[#lines + 1] = line
end
return lines
end
-- get first line of a file, return nil if
-- the file does not exist
function helpers.first_line(file)
return helpers.lines_from(file)[1]
end
-- get first non empty line from a file,
-- returns nil otherwise
function helpers.first_nonempty_line(file)
for k,v in pairs(lines_from(file)) do
if #v then return v end
end
return nil
end
-- }}}

View File

@ -1,3 +1,4 @@
--[[
Licensed under GNU General Public License v2

View File

@ -1,3 +1,4 @@
--[[
Licensed under GNU General Public License v2

2
wiki

@ -1 +1 @@
Subproject commit 2fe55cb50b4192866551d50dce563a52234961c7
Subproject commit 6825e84bb73415c4cbf5fcd903ea4987976e4be3