mirror of https://github.com/lcpz/lain.git
merging with upstream
This commit is contained in:
parent
bd3d30c4ad
commit
69572f3574
123
helpers.lua.orig
123
helpers.lua.orig
|
@ -1,123 +0,0 @@
|
||||||
|
|
||||||
--[[
|
|
||||||
|
|
||||||
Licensed under GNU General Public License v2
|
|
||||||
* (c) 2013, Luke Bonham
|
|
||||||
|
|
||||||
--]]
|
|
||||||
|
|
||||||
local debug = require("debug")
|
|
||||||
|
|
||||||
local capi = { timer = timer }
|
|
||||||
local io = { open = io.open,
|
|
||||||
<<<<<<< HEAD
|
|
||||||
lines = io.lines }
|
|
||||||
=======
|
|
||||||
lines = io.lines,
|
|
||||||
popen = io.popen }
|
|
||||||
>>>>>>> upstream/master
|
|
||||||
local rawget = rawget
|
|
||||||
|
|
||||||
-- Lain helper functions for internal use
|
|
||||||
-- lain.helpers
|
|
||||||
local helpers = {}
|
|
||||||
|
|
||||||
helpers.lain_dir = debug.getinfo(1, 'S').source:match[[^@(.*/).*$]]
|
|
||||||
helpers.icons_dir = helpers.lain_dir .. 'icons/'
|
|
||||||
helpers.scripts_dir = helpers.lain_dir .. 'scripts/'
|
|
||||||
|
|
||||||
-- {{{ Modules loader
|
|
||||||
|
|
||||||
function helpers.wrequire(table, key)
|
|
||||||
local module = rawget(table, key)
|
|
||||||
return module or require(table._NAME .. '.' .. key)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ File operations
|
|
||||||
|
|
||||||
-- see if the file exists and is readable
|
|
||||||
function helpers.file_exists(file)
|
|
||||||
local f = io.open(file)
|
|
||||||
if f then
|
|
||||||
local s = f:read()
|
|
||||||
f:close()
|
|
||||||
f = s
|
|
||||||
end
|
|
||||||
return f ~= nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 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(helpers.lines_from(file)) do
|
|
||||||
if #v then return v end
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Timer maker
|
|
||||||
|
|
||||||
helpers.timer_table = {}
|
|
||||||
|
|
||||||
function helpers.newtimer(name, timeout, fun, nostart)
|
|
||||||
helpers.timer_table[name] = capi.timer({ timeout = timeout })
|
|
||||||
helpers.timer_table[name]:connect_signal("timeout", fun)
|
|
||||||
helpers.timer_table[name]:start()
|
|
||||||
if not nostart then
|
|
||||||
helpers.timer_table[name]:emit_signal("timeout")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
-- {{{ Pipe operations
|
|
||||||
|
|
||||||
-- read the full output of a pipe (command)
|
|
||||||
function helpers.read_pipe(cmd)
|
|
||||||
local f = assert(io.popen(cmd))
|
|
||||||
local output = f:read("*all")
|
|
||||||
f:close()
|
|
||||||
return output
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
>>>>>>> upstream/master
|
|
||||||
-- {{{ A map utility
|
|
||||||
|
|
||||||
helpers.map_table = {}
|
|
||||||
|
|
||||||
function helpers.set_map(element, value)
|
|
||||||
helpers.map_table[element] = value
|
|
||||||
end
|
|
||||||
|
|
||||||
function helpers.get_map(element)
|
|
||||||
return helpers.map_table[element]
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
return helpers
|
|
Loading…
Reference in New Issue