mtx-base.lua /size: 5670 b    last modification: 2020-07-01 14:35
1
if
not
modules
then
modules
=
{
}
end
modules
[
'
mtx-base
'
]
=
{
2
version
=
1
.
001
,
3
comment
=
"
formerly known as luatools
"
,
4
author
=
"
Hans Hagen, PRAGMA-ADE, Hasselt NL
"
,
5
copyright
=
"
PRAGMA ADE / ConTeXt Development Team
"
,
6
license
=
"
see context related readme files
"
7
}
8 9
local
helpinfo
=
[[
10<?xml version="1.0"?> 11<application> 12 <metadata> 13 <entry name="name">mtx-base</entry> 14 <entry name="detail">ConTeXt TDS Management Tool (aka luatools)</entry> 15 <entry name="version">1.35</entry> 16 </metadata> 17 <flags> 18 <category name="basic"> 19 <subcategory> 20 <flag name="generate"><short>generate file database</short></flag> 21 <flag name="variables"><short>show configuration variables</short></flag> 22 <flag name="configurations"><short>show configuration order</short></flag> 23 <flag name="expand-braces"><short>expand complex variable</short></flag> 24 <flag name="expand-path"><short>expand variable (resolve paths)</short></flag> 25 <flag name="expand-var"><short>expand variable (resolve references)</short></flag> 26 <flag name="show-path"><short>show path expansion of ...</short></flag> 27 <flag name="var-value"><short>report value of variable</short></flag> 28 <flag name="find-file"><short>report file location</short></flag> 29 <flag name="find-path"><short>report path of file</short></flag> 30 <flag name="make"><short>[or <ref name="ini"/>] make luatex format</short></flag> 31 <flag name="run"><short>[or <ref name="fmt"/>] run luatex format</short></flag> 32 <flag name="compile"><short>assemble and compile lua inifile</short></flag> 33 <flag name="verbose"><short>give a bit more info</short></flag> 34 <flag name="all"><short>show all found files</short></flag> 35 <flag name="format" value="str"><short>filter cf format specification (default 'tex', use 'any' for any match)</short></flag> 36 <flag name="pattern" value="str"><short>filter variables</short></flag> 37 <flag name="trackers" value="list"><short>enable given trackers</short></flag> 38 </subcategory> 39 </category> 40 </flags> 41</application> 42
]]
43 44
local
application
=
logs
.
application
{
45
name
=
"
mtx-base
"
,
46
banner
=
"
ConTeXt TDS Management Tool (aka luatools) 1.35
"
,
47
helpinfo
=
helpinfo
,
48
}
49 50
local
report
=
application
.
report
51 52
-- private option --noluc for testing errors in the stub
53 54
local
pattern
=
environment
.
arguments
[
"
pattern
"
]
or
nil
55
local
fileformat
=
environment
.
arguments
[
"
format
"
]
or
"
"
-- nil ?
56
local
allresults
=
environment
.
arguments
[
"
all
"
]
or
false
57
local
trace
=
environment
.
arguments
[
"
trace
"
]
58 59
if
type
(
pattern
)
=
=
'
boolean
'
then
60
report
(
"
invalid pattern specification
"
)
61
pattern
=
nil
62
end
63 64
if
trace
then
65
resolvers
.
settrace
(
trace
)
-- move to mtxrun ?
66
end
67 68
if
environment
.
arguments
[
"
find-file
"
]
then
69
resolvers
.
load
(
)
70
if
pattern
then
71
resolvers
.
dowithfilesandreport
(
resolvers
.
findfiles
,
{
pattern
}
,
fileformat
,
allresults
)
72
else
73
resolvers
.
dowithfilesandreport
(
resolvers
.
findfiles
,
environment
.
files
,
fileformat
,
allresults
)
74
end
75
elseif
environment
.
arguments
[
"
find-path
"
]
then
76
resolvers
.
load
(
)
77
local
path
=
resolvers
.
findpath
(
environment
.
files
[
1
]
,
fileformat
)
78
print
(
path
)
-- quite basic, wil become function in logs
79
elseif
environment
.
arguments
[
"
expand-braces
"
]
then
80
resolvers
.
load
(
"
nofiles
"
)
81
resolvers
.
dowithfilesandreport
(
resolvers
.
expandbraces
,
environment
.
files
)
82
elseif
environment
.
arguments
[
"
expand-path
"
]
then
83
resolvers
.
load
(
"
nofiles
"
)
84
resolvers
.
dowithfilesandreport
(
resolvers
.
expandpath
,
environment
.
files
)
85
elseif
environment
.
arguments
[
"
expand-var
"
]
or
environment
.
arguments
[
"
expand-variable
"
]
then
86
resolvers
.
load
(
"
nofiles
"
)
87
resolvers
.
dowithfilesandreport
(
resolvers
.
expansion
,
environment
.
files
)
88
elseif
environment
.
arguments
[
"
show-path
"
]
or
environment
.
arguments
[
"
path-value
"
]
then
89
resolvers
.
load
(
"
nofiles
"
)
90
resolvers
.
dowithfilesandreport
(
resolvers
.
showpath
,
environment
.
files
)
91
elseif
environment
.
arguments
[
"
var-value
"
]
or
environment
.
arguments
[
"
show-value
"
]
then
92
resolvers
.
load
(
"
nofiles
"
)
93
resolvers
.
dowithfilesandreport
(
resolvers
.
variable
,
environment
.
files
)
94
elseif
environment
.
arguments
[
"
format-path
"
]
then
95
resolvers
.
load
(
)
96
report
(
caches
.
getwritablepath
(
"
format
"
)
)
97
elseif
pattern
then
-- brrr
98
resolvers
.
load
(
)
99
resolvers
.
dowithfilesandreport
(
resolvers
.
findfiles
,
{
pattern
}
,
fileformat
,
allresults
)
100
elseif
environment
.
arguments
[
"
generate
"
]
then
101
resolvers
.
renewcache
(
)
102
trackers
.
enable
(
"
resolvers.locating
"
)
103
resolvers
.
load
(
)
104
elseif
environment
.
arguments
[
"
make
"
]
or
environment
.
arguments
[
"
ini
"
]
or
environment
.
arguments
[
"
compile
"
]
then
105
resolvers
.
load
(
)
106
trackers
.
enable
(
"
resolvers.locating
"
)
107
environment
.
make_format
(
environment
.
files
[
1
]
or
"
"
)
108
elseif
environment
.
arguments
[
"
variables
"
]
or
environment
.
arguments
[
"
show-variables
"
]
or
environment
.
arguments
[
"
expansions
"
]
or
environment
.
arguments
[
"
show-expansions
"
]
then
109
resolvers
.
load
(
"
nofiles
"
)
110
resolvers
.
listers
.
variables
(
pattern
)
111
elseif
environment
.
arguments
[
"
configurations
"
]
or
environment
.
arguments
[
"
show-configurations
"
]
then
112
resolvers
.
load
(
"
nofiles
"
)
113
resolvers
.
listers
.
configurations
(
)
114
elseif
environment
.
arguments
[
"
exporthelp
"
]
then
115
application
.
export
(
environment
.
arguments
[
"
exporthelp
"
]
,
environment
.
files
[
1
]
)
116
elseif
environment
.
arguments
[
"
help
"
]
or
(
environment
.
files
[
1
]
=
=
'
help
'
)
or
(
#
environment
.
files
=
=
0
)
then
117
application
.
help
(
)
118
elseif
environment
.
files
[
1
]
=
=
'
texmfcnf.lua
'
then
119
resolvers
.
load
(
"
nofiles
"
)
120
resolvers
.
listers
.
configurations
(
)
121
else
122
resolvers
.
load
(
)
123
resolvers
.
dowithfilesandreport
(
resolvers
.
findfiles
,
environment
.
files
,
fileformat
,
allresults
)
124
end
125