diff options
Diffstat (limited to 'Master/texmf-dist/scripts/context/lua/mtx-base.lua')
-rw-r--r-- | Master/texmf-dist/scripts/context/lua/mtx-base.lua | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-base.lua b/Master/texmf-dist/scripts/context/lua/mtx-base.lua new file mode 100644 index 00000000000..ab5bfe18a9b --- /dev/null +++ b/Master/texmf-dist/scripts/context/lua/mtx-base.lua @@ -0,0 +1,118 @@ +if not modules then modules = { } end modules ['mtx-base'] = { + version = 1.001, + comment = "formerly known as luatools", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +local helpinfo = [[ +--generate generate file database +--variables show configuration variables +--configurations show configuration order +--expand-braces expand complex variable +--expand-path expand variable (resolve paths) +--expand-var expand variable (resolve references) +--show-path show path expansion of ... +--var-value report value of variable +--find-file report file location +--find-path report path of file +--make or --ini make luatex format +--run or --fmt= run luatex format +--compile assemble and compile lua inifile +--verbose give a bit more info +--all show all found files +--format=str filter cf format specification (default 'tex', use 'any' for any match) +--pattern=str filter variables +--trackers=list enable given trackers +]] + +local application = logs.application { + name = "mtx-base", + banner = "ConTeXt TDS Management Tool 1.35 (aka luatools)", + helpinfo = helpinfo, +} + +local report = application.report + +-- private option --noluc for testing errors in the stub + +local instance = resolvers.instance + +local pattern = environment.arguments["pattern"] or nil +local fileformat = environment.arguments["format"] or "" -- nil ? +local allresults = environment.arguments["all"] or false +local trace = environment.arguments["trace"] + +if type(pattern) == 'boolean' then + report("invalid pattern specification") + pattern = nil +end + +if trace then + resolvers.settrace(trace) -- move to mtxrun ? +end + +if environment.arguments["find-file"] then + resolvers.load() + if pattern then + resolvers.dowithfilesandreport(resolvers.findfiles, { pattern }, fileformat, allresults) + else + resolvers.dowithfilesandreport(resolvers.findfiles, environment.files, fileformat, allresults) + end +elseif environment.arguments["find-path"] then + resolvers.load() + local path = resolvers.findpath(environment.files[1], fileformat) + print(path) -- quite basic, wil become function in logs +elseif environment.arguments["run"] then + resolvers.load("nofiles") -- ! no need for loading databases + trackers.enable("resolvers.locating") + environment.run_format(environment.files[1] or "",environment.files[2] or "",environment.files[3] or "") +elseif environment.arguments["fmt"] then + resolvers.load("nofiles") -- ! no need for loading databases + trackers.enable("resolvers.locating") + environment.run_format(environment.arguments["fmt"], environment.files[1] or "",environment.files[2] or "") +elseif environment.arguments["expand-braces"] then + resolvers.load("nofiles") + resolvers.dowithfilesandreport(resolvers.expandbraces, environment.files) +elseif environment.arguments["expand-path"] then + resolvers.load("nofiles") + resolvers.dowithfilesandreport(resolvers.expandpath, environment.files) +elseif environment.arguments["expand-var"] or environment.arguments["expand-variable"] then + resolvers.load("nofiles") + resolvers.dowithfilesandreport(resolvers.expansion, environment.files) +elseif environment.arguments["show-path"] or environment.arguments["path-value"] then + resolvers.load("nofiles") + resolvers.dowithfilesandreport(resolvers.showpath, environment.files) +elseif environment.arguments["var-value"] or environment.arguments["show-value"] then + resolvers.load("nofiles") + resolvers.dowithfilesandreport(resolvers.variable, environment.files) +elseif environment.arguments["format-path"] then + resolvers.load() + report(caches.getwritablepath("format")) +elseif pattern then -- brrr + resolvers.load() + resolvers.dowithfilesandreport(resolvers.findfiles, { pattern }, fileformat, allresults) +elseif environment.arguments["generate"] then + instance.renewcache = true + trackers.enable("resolvers.locating") + resolvers.load() +elseif environment.arguments["make"] or environment.arguments["ini"] or environment.arguments["compile"] then + resolvers.load() + trackers.enable("resolvers.locating") + environment.make_format(environment.files[1] or "") +elseif environment.arguments["variables"] or environment.arguments["show-variables"] or environment.arguments["expansions"] or environment.arguments["show-expansions"] then + resolvers.load("nofiles") + resolvers.listers.variables(pattern) +elseif environment.arguments["configurations"] or environment.arguments["show-configurations"] then + resolvers.load("nofiles") + resolvers.listers.configurations() +elseif environment.arguments["help"] or (environment.files[1]=='help') or (#environment.files==0) then + application.help() +elseif environment.files[1] == 'texmfcnf.lua' then + resolvers.load("nofiles") + resolvers.listers.configurations() +else + resolvers.load() + resolvers.dowithfilesandreport(resolvers.findfiles, environment.files, fileformat, allresults) +end |