diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua | 232 |
1 files changed, 0 insertions, 232 deletions
diff --git a/Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua b/Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua deleted file mode 100644 index da2e9777df8..00000000000 --- a/Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua +++ /dev/null @@ -1,232 +0,0 @@ ---[[ - -File l3build-ctan.lua Copyright (C) 2018 The LaTeX3 Project - -It may be distributed and/or modified under the conditions of the -LaTeX Project Public License (LPPL), either version 1.3c of this -license or (at your option) any later version. The latest version -of this license is in the file - - http://www.latex-project.org/lppl.txt - -This file is part of the "l3build bundle" (The Work in LPPL) -and all files in that bundle must be distributed together. - ------------------------------------------------------------------------ - -The development version of the bundle can be found at - - https://github.com/latex3/l3build - -for those people who are interested. - ---]] - -local gsub = string.gsub -local insert = table.insert - --- Copy files to the main CTAN release directory -function copyctan() - mkdir(ctandir .. "/" .. ctanpkg) - local function copyfiles(files,source) - if source == currentdir or flatten then - for _,filetype in pairs(files) do - cp(filetype,source,ctandir .. "/" .. ctanpkg) - end - else - for _,filetype in pairs(files) do - for file,_ in pairs(tree(source,filetype)) do - local path = splitpath(file) - local ctantarget = ctandir .. "/" .. ctanpkg .. "/" - .. source .. "/" .. path - mkdir(ctantarget) - cp(file,source,ctantarget) - end - end - end - end - for _,tab in pairs({bibfiles,demofiles,docfiles,pdffiles,typesetlist}) do - copyfiles(tab,docfiledir) - end - copyfiles(sourcefiles,sourcefiledir) - for _,file in pairs(textfiles) do - cp(file, currentdir, ctandir .. "/" .. ctanpkg) - end -end - --- Copy files to the correct places in the TDS tree -function copytds() - local function install(source, dest, files, tool) - local moduledir = moduledir - -- For material associated with secondary tools (BibTeX, MakeIndex) - -- the structure needed is slightly different from those items going - -- into the tex/doc/source trees - if tool then - -- "base" is reserved for the tools themselves: make the assumption - -- in this case that the tdsroot name is the right place for stuff to - -- go (really just for the team) - if module == "base" then - moduledir = tdsroot - else - moduledir = module - end - end - -- Convert the file table(s) to a list of individual files - local filenames = { } - for _,i in ipairs(files) do - for _,j in ipairs(i) do - for file,_ in pairs(tree(source, j)) do - insert(filenames, file) - end - end - end - -- The target is only created if there are actual files to install - if next(filenames) ~= nil then - local installdir = tdsdir .. "/" .. dest .. "/" .. moduledir - mkdir(installdir) - for _,i in ipairs(filenames) do - cp(i, source, installdir) - end - end - end - install( - docfiledir, - "doc", - {bibfiles, demofiles, docfiles, pdffiles, textfiles, typesetlist} - ) - install(unpackdir, "makeindex", {makeindexfiles}, true) - install(unpackdir, "bibtex/bst", {bstfiles}, true) - install(sourcefiledir, "source", {sourcelist}) - install(unpackdir, "tex", {installfiles}) -end - --- Standard versions of the main targets for building modules - -function ctan() - -- Always run tests for all engines - options["engine"] = nil - local function dirzip(dir, name) - local zipname = name .. ".zip" - local function tab_to_str(table) - local string = "" - for _,i in ipairs(table) do - string = string .. " " .. "\"" .. i .. "\"" - end - return string - end - -- Convert the tables of files to quoted strings - local binfiles = tab_to_str(binaryfiles) - local exclude = tab_to_str(excludefiles) - -- First, zip up all of the text files - run( - dir, - zipexe .. " " .. zipopts .. " -ll ".. zipname .. " " .. "." - .. ( - (binfiles or exclude) and (" -x" .. binfiles .. " " .. exclude) - or "" - ) - ) - -- Then add the binary ones - run( - dir, - zipexe .. " " .. zipopts .. " -g ".. zipname .. " " .. ". -i" .. - binfiles .. (exclude and (" -x" .. exclude) or "") - ) - end - local errorlevel - local standalone = false - if bundle == "" then - standalone = true - end - if standalone then - errorlevel = check() - bundle = module - else - errorlevel = call(modules, "bundlecheck") - end - if errorlevel == 0 then - rmdir(ctandir) - mkdir(ctandir .. "/" .. ctanpkg) - rmdir(tdsdir) - mkdir(tdsdir) - if standalone then - errorlevel = bundlectan() - else - errorlevel = call(modules, "bundlectan") - end - else - print("\n====================") - print("Tests failed, zip stage skipped!") - print("====================\n") - return errorlevel - end - if errorlevel == 0 then - for _,i in ipairs(textfiles) do - for _,j in pairs({unpackdir, currentdir}) do - cp(i, j, ctandir .. "/" .. ctanpkg) - cp(i, j, tdsdir .. "/doc/" .. tdsroot .. "/" .. bundle) - end - end - dirzip(tdsdir, ctanpkg .. ".tds") - if packtdszip then - cp(ctanpkg .. ".tds.zip", tdsdir, ctandir) - end - dirzip(ctandir, ctanpkg) - cp(ctanpkg .. ".zip", ctandir, currentdir) - else - print("\n====================") - print("Typesetting failed, zip stage skipped!") - print("====================\n") - end - return errorlevel -end - -function bundlectan() - -- Generate a list of individual file names excluding those in the second - -- argument: the latter is a table - local function excludelist(include, exclude, dir) - local include = include or { } - local exclude = exclude or { } - local dir = dir or currentdir - local includelist = { } - local excludelist = { } - for _,i in ipairs(exclude) do - for _,j in ipairs(i) do - for file,_ in pairs(tree(dir, j)) do - excludelist[file] = true - end - end - end - for _,i in ipairs(include) do - for file,_ in pairs(tree(dir, i)) do - if not excludelist[file] then - insert(includelist, file) - end - end - end - return includelist - end - unpack() - local errorlevel = doc() - if errorlevel == 0 then - -- Work out what PDF files are available - pdffiles = { } - for _,i in ipairs(typesetfiles) do - insert(pdffiles, (gsub(i, "%.%w+$", ".pdf"))) - end - -- For the purposes here, any typesetting demo files need to be - -- part of the main typesetting list - local typesetfiles = typesetfiles - for _,v in pairs(typesetdemofiles) do - insert(typesetfiles, v) - end - typesetlist = excludelist(typesetfiles, {sourcefiles}, docfiledir) - sourcelist = excludelist( - sourcefiles, {bstfiles, installfiles, makeindexfiles}, sourcefiledir - ) - copyctan() - copytds() - end - return errorlevel -end - |