1
0
mirror of https://github.com/natnat-mc/moonbuild synced 2026-05-23 15:09:41 +02:00

fixed wildcard and normalizepath

This commit is contained in:
Nathan DECHER
2020-09-15 11:36:17 +02:00
parent 0e23ccecfb
commit 7b4973f0b4
2 changed files with 11 additions and 4 deletions
+6 -2
View File
@@ -120,7 +120,11 @@ normalizepath = function(file)
break break
end end
end end
return (absolute and '/' or '') .. concat(parts, '/') if #parts == 0 then
return '.'
else
return (absolute and '/' or '') .. concat(parts, '/')
end
end end
local ls local ls
ls = function(d) ls = function(d)
@@ -201,7 +205,7 @@ wildcard = function(glob)
local absolute = (sub(glob, 1, 1)) == '/' local absolute = (sub(glob, 1, 1)) == '/'
for i, part in ipairs(parts) do for i, part in ipairs(parts) do
local prevpath = (absolute and '/' or '') .. concat(parts, '/', 1, i - 1) local prevpath = (absolute and '/' or '') .. concat(parts, '/', 1, i - 1)
local currpath = prevpath .. '/' .. part local currpath = (i == 1 and '' or (prevpath .. '/')) .. part
if match(part, '%*%*.*%*%*') then if match(part, '%*%*.*%*%*') then
error("Two '**' in the same path component in a wildcard") error("Two '**' in the same path component in a wildcard")
end end
+5 -2
View File
@@ -16,7 +16,10 @@ normalizepath = (file) ->
remove parts, i-1 remove parts, i-1
i -= 2 i -= 2
continue continue
(absolute and '/' or '') .. concat parts, '/' if #parts==0
'.'
else
(absolute and '/' or '') .. concat parts, '/'
ls = (d) -> ls = (d) ->
[f for f in *dir normalizepath d when f!='.' and f!='..'] [f for f in *dir normalizepath d when f!='.' and f!='..']
@@ -54,7 +57,7 @@ wildcard = (glob) ->
for i, part in ipairs parts for i, part in ipairs parts
prevpath = (absolute and '/' or '') .. concat parts, '/', 1, i-1 prevpath = (absolute and '/' or '') .. concat parts, '/', 1, i-1
currpath = prevpath .. '/' .. part currpath = (i==1 and '' or (prevpath .. '/')) .. part
if match part, '%*%*.*%*%*' if match part, '%*%*.*%*%*'
error "Two '**' in the same path component in a wildcard" error "Two '**' in the same path component in a wildcard"