Giter Site home page Giter Site logo

lua-glob's Introduction

lua-glob

Build status

Require LPegLabel

Install: copy "glob/" directory to your project, or use luarocks luarocks install lua-glob --server=https://luarocks.org/dev

glob

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

gitignore

match

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

scan

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

lua-glob's People

Contributors

rinkaa avatar sumneko avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.