diff options
Diffstat (limited to 'tex/context/base/core-sys.lua')
-rw-r--r-- | tex/context/base/core-sys.lua | 90 |
1 files changed, 81 insertions, 9 deletions
diff --git a/tex/context/base/core-sys.lua b/tex/context/base/core-sys.lua index 0be9fd588..e25c9b8f1 100644 --- a/tex/context/base/core-sys.lua +++ b/tex/context/base/core-sys.lua @@ -6,21 +6,93 @@ if not modules then modules = { } end modules ['core-sys'] = { license = "see context related readme files" } -local lower, format = string.lower, string.format -local extname, basename, removesuffix = file.extname, file.basename, file.removesuffix +local lower, format, gsub = string.lower, string.format, string.gsub +local suffixonly, basename, removesuffix = file.suffix, file.basename, file.removesuffix local environment = environment -function commands.updatefilenames(inputfilename,outputfilename) - environment.inputfilename = inputfilename or "" - environment.outputfilename = outputfilename or "" - environment.jobfilename = inputfilename or tex.jobname or "" - environment.jobfilesuffix = lower(extname(environment.jobfilename)) +local report_files = logs.reporter("system","files") + +-- function commands.updatefilenames(jobname,fulljobname,inputfilename,outputfilename) +-- -- +-- environment.jobname = jobname +-- -- +-- local jobfilename = gsub(fulljobname or jobname or inputfilename or tex.jobname or "","%./","") +-- -- +-- environment.jobfilename = jobfilename +-- environment.jobfilesuffix = lower(suffixonly(environment.jobfilename)) +-- -- +-- local inputfilename = gsub(inputfilename or "","%./","") +-- environment.inputfilename = inputfilename +-- environment.inputfilebarename = removesuffix(basename(inputfilename)) +-- -- +-- local inputfilerealsuffix = suffixonly(inputfilename) +-- environment.inputfilerealsuffix = inputfilerealsuffix +-- -- +-- local inputfilesuffix = inputfilerealsuffix == "" and "tex" or lower(inputfilerealsuffix) +-- environment.inputfilesuffix = inputfilesuffix +-- -- +-- local outputfilename = outputfilename or environment.inputfilebarename or "" +-- environment.outputfilename = outputfilename +-- -- +-- local runpath = resolvers.cleanpath(lfs.currentdir()) +-- environment.runpath = runpath +-- -- +-- statistics.register("running on path", function() +-- return environment.runpath +-- end) +-- -- +-- statistics.register("job file properties", function() +-- return format("jobname: %s, input: %s, suffix: %s",jobfilename,inputfilename,inputfilesuffix) +-- end) +-- -- +-- end + +function environment.initializefilenames() -- commands.updatefilenames(jobname,fulljobname,input,result) + + local arguments = environment.arguments + + local jobname = arguments.jobname or tex.jobname + local fulljobname = arguments.fulljobname or jobname + local inputfilename = arguments.input or fulljobname + local outputfilename = arguments.result or removesuffix(jobname) + + local inputfilename = suffixonly(inputfilename) == "tex" and removesuffix(inputfilename) or inputfilename or "" + + local filename = fulljobname + local suffix = suffixonly(filename) + + local filename = ctxrunner.resolve(filename) -- in case we're prepped + + local jobfilename = jobname or inputfilename or tex.jobname or "" + local inputfilename = inputfilename or "" + + jobfilename = gsub(jobfilename, "^./","") + inputfilename = gsub(inputfilename,"^./","") + + environment.jobfilename = jobfilename + environment.jobfilesuffix = lower(suffixonly(jobfilename)) + + environment.inputfilename = inputfilename environment.inputfilebarename = removesuffix(basename(inputfilename)) - environment.inputfilesuffix = lower(extname(inputfilename)) + environment.inputfilesuffix = lower(suffixonly(inputfilename)) + + environment.outputfilename = outputfilename or environment.inputfilebarename or "" + + environment.filename = filename + environment.suffix = suffix + + report_files("jobname: %s, input: %s, result: %s",jobfilename,inputfilename,outputfilename) + + function environment.initializefilenames() end end statistics.register("result saved in file", function() -- suffix will be fetched from backend - return format( "%s.%s", environment.outputfilename, (tex.pdfoutput>0 and "pdf") or "dvi") + local outputfilename = environment.outputfilename or environment.jobname or tex.jobname or "<unset>" + if tex.pdfoutput > 0 then + return format( "%s.%s, compresslevel %s, objectcompreslevel %s",outputfilename,"pdf",tex.pdfcompresslevel, tex.pdfobjcompresslevel) + else + return format( "%s.%s",outputfilename,"dvi") -- hard to imagine + end end) |