Require LPegLabel
Install: copy "glob/" directory to your project, or use luarocks luarocks install lua-glob --server=https://luarocks.org/dev
local glob = require 'glob'
local pattern = {
'src',
'!*.dll',
}
local options = {
ignoreCase = true
}
local parser = glob.glob(pattern, options)
parser 'Src/main.lua' --> true
parser 'Src/lpeg.dll' --> false
local glob = require 'glob'
local pattern = {
'src/*',
'!*.dll',
}
local options = {
ignoreCase = true
}
local parser = glob.gitignore(pattern, options)
parser 'Src/main.lua' --> true
parser 'Src/lpeg.dll' --> false
Work space
main.lua
utility.lua
src
|---test.lua
|---bee.dll
|---lua.dll
local glob = require 'glob'
local fs = require 'bee.filesystem' -- just another filesystem
local pattern = {
'src/*',
'!*.dll',
}
local options = {
ignoreCase = true
}
local interface = {
type = function (path)
if not fs.exists(fs.path(path)) then
return nil
end
if fs.is_directory(fs.path(path)) then
return 'directory'
else
return 'file'
end
end,
list = function (path)
if not fs.exists(fs.path(path)) then
return nil
end
if not fs.is_directory(fs.path(path)) then
return nil
end
local childs = {}
for child in fs.path(path):list_directory() do
childs[#childs+1] = child:string()
end
return childs
end,
}
local parser = glob.gitignore(pattern, options, interface)
local files = parser:scan()
print(files[1]) --> main.lua
print(files[2]) --> utility.lua
print(files[3]) --> src\bee.dll
print(files[4]) --> src\lua.dll
print(files[5]) --> nil