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