summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua')
-rw-r--r--Master/texmf-dist/tex/latex/l3build/l3build-ctan.lua232
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
-