2013-05-14 12:48:31 +00:00
|
|
|
#!/usr/bin/env lua
|
|
|
|
|
|
|
|
-- display.lua
|
|
|
|
-- Display content of a file and attempt to match some specific words
|
|
|
|
-- author: Olivier DOSSMANN (olivier+lua@dossmann.net)
|
|
|
|
|
|
|
|
--[[ requirement ]]--
|
|
|
|
require 'lfs' -- apt-get install liblua5.1-filesystem0 || luarocks install luafilesystem
|
|
|
|
|
|
|
|
function process(filepath)
|
|
|
|
-- parse given file
|
|
|
|
for line in io.lines(filepath) do
|
|
|
|
-- check if this line is a comment ("# my comment"), a category ("[[My category]]Its description") or an element ("Title##Description##URL##Image")
|
2013-05-14 14:19:35 +00:00
|
|
|
is_comment = string.find(line, '^#+.*')
|
2013-05-14 12:48:31 +00:00
|
|
|
is_title = string.find(line, '%[%[(.*)%]%](.*)')
|
|
|
|
is_element = string.find(line, '(.*)##(.*)##(.*)##(.*)')
|
|
|
|
if is_comment then
|
|
|
|
-- do nothing because it's a comment
|
|
|
|
elseif is_title then
|
|
|
|
title = ''
|
|
|
|
for t in string.gmatch(line, '%[%[(.*)%]%].*') do title = title .. t end
|
|
|
|
description =''
|
|
|
|
for d in string.gmatch(line, '%[%[.*%]%](.*)') do description = description .. d end
|
|
|
|
print("TITLE: " .. '\n\t' .. title .. '\n\t' .. description)
|
|
|
|
elseif is_element then
|
|
|
|
title = ''
|
|
|
|
description = ''
|
|
|
|
url = ''
|
|
|
|
img = ''
|
|
|
|
for t in string.gmatch(line, '(.*)##.*##.*##.*') do title = title .. t end
|
|
|
|
for d in string.gmatch(line, '.*##(.*)##.*##.*') do description = description .. d end
|
|
|
|
for u in string.gmatch(line, '.*##.*##(.*)##.*') do url = url .. u end
|
|
|
|
for i in string.gmatch(line, '.*##.*##.*##(.*)') do img = img .. i end
|
|
|
|
print("ELEMENT: " .. '\n\t' .. title .. '\n\t' .. description .. '\n\t' .. url .. '\n\t' .. img)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function help()
|
|
|
|
print('Usage: ' .. arg[0] .. ' FILE...')
|
|
|
|
end
|
|
|
|
|
|
|
|
if arg and table.getn(arg) > 0 then
|
|
|
|
for i, file in pairs(arg) do
|
|
|
|
if i > 0 then
|
|
|
|
attr = lfs.attributes(file)
|
|
|
|
if attr and attr.mode == 'file' then
|
|
|
|
process(file)
|
|
|
|
else
|
|
|
|
print('INFO: ' .. file .. ' is not a file or doesn\'t exists.')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
else
|
|
|
|
print('WARNING: No argument given.')
|
|
|
|
help()
|
|
|
|
os.exit(1)
|
|
|
|
end
|