|
Hi,
this is just a wrapper around find. Very basic, too, but then it is also short :)
function findfile(where)
local t = {}
local p
local iterator = coroutine.wrap(function ()
local l
for l in p:lines() do
coroutine.yield(l)
end
end)
return setmetatable(t, {
__index = function(_, key)
return function(_, val)
if val == nil then val = '' end
t[key] = val
return t
end
end,
__call = function()
local cmd = '/usr/bin/find ' .. where
local k, v
for k, v in pairs(t) do
cmd = cmd .. ' -' .. k
if v ~= '' then cmd = cmd .. ' "' .. tostring(v) .. '"' end
end
p = io.popen(cmd, "r")
return iterator
end
})
end
-- example:
for item in
findfile
("."):type("f"):name("*Font*")() do
print(">" .. item .. "<")
end
Gunnar