diff options
author | Norbert Preining <norbert@preining.info> | 2021-05-06 03:00:58 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-05-06 03:00:58 +0000 |
commit | 25f20b6d8ccd4edcdfec23c1a3c908516076ee06 (patch) | |
tree | f889e071118d7d2db80066d14d14b020c50a2238 /macros/latex/contrib/l3build/l3build-clean.lua | |
parent | 75db33dc347ec9cfbaa2f3ec538a2697351f571b (diff) |
CTAN sync 202105060300
Diffstat (limited to 'macros/latex/contrib/l3build/l3build-clean.lua')
-rw-r--r-- | macros/latex/contrib/l3build/l3build-clean.lua | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/macros/latex/contrib/l3build/l3build-clean.lua b/macros/latex/contrib/l3build/l3build-clean.lua index 27ed42be9c..f548a392eb 100644 --- a/macros/latex/contrib/l3build/l3build-clean.lua +++ b/macros/latex/contrib/l3build/l3build-clean.lua @@ -1,6 +1,6 @@ --[[ -File l3build-clean.lua Copyright (C) 2018,2020 The LaTeX3 Project +File l3build-clean.lua Copyright (C) 2018,2020 The LaTeX Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -22,36 +22,46 @@ for those people who are interested. --]] +local pairs = pairs +local ipairs = ipairs +local insert = table.insert + -- Remove all generated files function clean() -- To make sure that distribdir never contains any stray subdirs, -- it is entirely removed then recreated rather than simply deleting -- all of the files - local errorlevel = - rmdir(distribdir) + - mkdir(distribdir) + - cleandir(localdir) + - cleandir(testdir) + - cleandir(typesetdir) + - cleandir(unpackdir) + local errorlevel = rmdir(distribdir) + + mkdir(distribdir) + + cleandir(localdir) + + cleandir(testdir) + + cleandir(typesetdir) + + cleandir(unpackdir) if errorlevel ~= 0 then return errorlevel end - local clean_list = { } for _,dir in pairs(remove_duplicates({maindir,sourcefiledir,docfiledir})) do + local clean_list = {} + local flags = {} for _,glob in pairs(cleanfiles) do - for file,_ in pairs(tree(dir,glob)) do - clean_list[file] = true + for _,p in ipairs(tree(dir,glob)) do + insert(clean_list, p.src) + flags[p.src] = true end end for _,glob in pairs(sourcefiles) do - for file,_ in pairs(tree(dir,glob)) do - clean_list[file] = nil + for _,p in ipairs(tree(dir,glob)) do + flags[p.src] = nil end end - for file,_ in pairs(clean_list) do - errorlevel = rm(dir,file) - if errorlevel ~= 0 then return errorlevel end + for i = #clean_list, 1, -1 do + local p_src = clean_list[i] + if flags[p_src] then + errorlevel = rm(dir,p_src) + if errorlevel ~= 0 then + return errorlevel + end + end end end @@ -63,10 +73,8 @@ function bundleclean() for _,i in ipairs(cleanfiles) do errorlevel = rm(currentdir, i) + errorlevel end - return ( - errorlevel + - rmdir(ctandir) + - rmdir(tdsdir) - ) + return errorlevel + + rmdir(ctandir) + + rmdir(tdsdir) end |