1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
if not modules then modules = { } end modules ['core-sys'] = {
version = 1.001,
comment = "companion to core-sys.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
local lower, format, gsub = string.lower, string.format, string.gsub
local suffixonly, basename, removesuffix = file.suffix, file.basename, file.removesuffix
local environment = environment
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 %a, input %a, suffix %a",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 ""
local jobfilebase = basename(jobfilename)
local inputfilebase = basename(inputfilename)
-- jobfilename = gsub(jobfilename, "^./","")
-- inputfilename = gsub(inputfilename,"^./","")
environment.jobfilename = jobfilebase
environment.jobfilesuffix = lower(suffixonly(jobfilebase))
environment.inputfilename = inputfilename -- so here we keep e.g. ./ or explicit paths
environment.inputfilebarename = removesuffix(inputfilebase)
environment.inputfilesuffix = lower(suffixonly(inputfilebase))
environment.outputfilename = outputfilename or environment.inputfilebarename or ""
environment.filename = filename
environment.suffix = suffix
report_files("jobname %a, input %a, result %a",jobfilename,inputfilename,outputfilename)
function environment.initializefilenames() end
end
statistics.register("result saved in file", function()
-- suffix will be fetched from backend
local outputfilename = environment.outputfilename or environment.jobname or tex.jobname or "<unset>"
if tex.pdfoutput > 0 then
return format("%s.%s, compresslevel %s, objectcompresslevel %s",outputfilename,"pdf",tex.pdfcompresslevel, tex.pdfobjcompresslevel)
else
return format("%s.%s",outputfilename,"dvi") -- hard to imagine
end
end)
|