diff options
Diffstat (limited to 'scripts/context/lua/mtx-texworks.lua')
-rw-r--r-- | scripts/context/lua/mtx-texworks.lua | 242 |
1 files changed, 121 insertions, 121 deletions
diff --git a/scripts/context/lua/mtx-texworks.lua b/scripts/context/lua/mtx-texworks.lua index 8cb7736ac..ae5f2afa4 100644 --- a/scripts/context/lua/mtx-texworks.lua +++ b/scripts/context/lua/mtx-texworks.lua @@ -1,121 +1,121 @@ -if not modules then modules = { } end modules ['mtx-texworks'] = {
- version = 1.002,
- comment = "companion to mtxrun.lua",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local helpinfo = [[
-<?xml version="1.0"?>
-<application>
- <metadata>
- <entry name="name">mtx-texworks</entry>
- <entry name="detail">TeXworks Startup Script</entry>
- <entry name="version">1.00</entry>
- </metadata>
- <flags>
- <category name="basic">
- <subcategory>
- <flag name="start"><short>[<ref name="verbose]"/> start texworks</short></flag>
- <flag name="test"><short>report what will happen</short></flag>
- </subcategory>
- </category>
- </flags>
-</application>
-]]
-
-local application = logs.application {
- name = "mtx-texworks",
- banner = "TeXworks Startup Script 1.00",
- helpinfo = helpinfo,
-}
-
-local report = application.report
-
-scripts = scripts or { }
-scripts.texworks = scripts.texworks or { }
-
-local texworkspaths = {
- "completion",
- "configuration",
- "dictionaries",
- "translations",
- "scripts",
- "templates",
- "TUG"
-}
-
-local texworkssignal = "texworks-context.rme"
-local texworkininame = "texworks.ini"
-
-function scripts.texworks.start(indeed)
- local workname = (os.type == "windows" and "texworks.exe") or "texworks"
- local fullname = nil
- local binpaths = file.splitpath(os.getenv("PATH")) or file.splitpath(os.getenv("path"))
- local usedsignal = texworkssignal
- local datapath = resolvers.findfile(usedsignal,"other text files") or ""
- if datapath ~= "" then
- datapath = file.dirname(datapath) -- data
- if datapath == "" then
- datapath = resolvers.cleanpath(lfs.currentdir())
- end
- else
- usedsignal = texworkininame
- datapath = resolvers.findfile(usedsignal,"other text files") or ""
- if datapath == "" then
- usedsignal = string.lower(usedsignal)
- datapath = resolvers.findfile(usedsignal,"other text files") or ""
- end
- if datapath ~= "" and lfs.isfile(datapath) then
- datapath = file.dirname(datapath) -- TUG
- datapath = file.dirname(datapath) -- data
- if datapath == "" then
- datapath = resolvers.cleanpath(lfs.currentdir())
- end
- end
- end
- if datapath == "" then
- report("invalid datapath, maybe you need to regenerate the file database")
- return false
- end
- if not binpaths or #binpaths == 0 then
- report("invalid binpath")
- return false
- end
- for i=1,#binpaths do
- local p = file.join(binpaths[i],workname)
- if lfs.isfile(p) and lfs.attributes(p,"size") > 10000 then -- avoind stub
- fullname = p
- break
- end
- end
- if not fullname then
- report("unable to locate %s",workname)
- return false
- end
- for i=1,#texworkspaths do
- dir.makedirs(file.join(datapath,texworkspaths[i]))
- end
- os.setenv("TW_INIPATH",datapath)
- os.setenv("TW_LIBPATH",datapath)
- if not indeed or environment.argument("verbose") then
- report("used signal: %s", usedsignal)
- report("data path : %s", datapath)
- report("full name : %s", fullname)
- report("set paths : TW_INIPATH TW_LIBPATH")
- end
- if indeed then
- os.launch(fullname)
- end
-end
-
-if environment.argument("start") then
- scripts.texworks.start(true)
-elseif environment.argument("test") then
- scripts.texworks.start()
-elseif environment.argument("exporthelp") then
- application.export(environment.argument("exporthelp"),environment.files[1])
-else
- application.help()
-end
+if not modules then modules = { } end modules ['mtx-texworks'] = { + version = 1.002, + comment = "companion to mtxrun.lua", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +local helpinfo = [[ +<?xml version="1.0"?> +<application> + <metadata> + <entry name="name">mtx-texworks</entry> + <entry name="detail">TeXworks Startup Script</entry> + <entry name="version">1.00</entry> + </metadata> + <flags> + <category name="basic"> + <subcategory> + <flag name="start"><short>[<ref name="verbose]"/> start texworks</short></flag> + <flag name="test"><short>report what will happen</short></flag> + </subcategory> + </category> + </flags> +</application> +]] + +local application = logs.application { + name = "mtx-texworks", + banner = "TeXworks Startup Script 1.00", + helpinfo = helpinfo, +} + +local report = application.report + +scripts = scripts or { } +scripts.texworks = scripts.texworks or { } + +local texworkspaths = { + "completion", + "configuration", + "dictionaries", + "translations", + "scripts", + "templates", + "TUG" +} + +local texworkssignal = "texworks-context.rme" +local texworkininame = "texworks.ini" + +function scripts.texworks.start(indeed) + local workname = (os.type == "windows" and "texworks.exe") or "texworks" + local fullname = nil + local binpaths = file.splitpath(os.getenv("PATH")) or file.splitpath(os.getenv("path")) + local usedsignal = texworkssignal + local datapath = resolvers.findfile(usedsignal,"other text files") or "" + if datapath ~= "" then + datapath = file.dirname(datapath) -- data + if datapath == "" then + datapath = resolvers.cleanpath(lfs.currentdir()) + end + else + usedsignal = texworkininame + datapath = resolvers.findfile(usedsignal,"other text files") or "" + if datapath == "" then + usedsignal = string.lower(usedsignal) + datapath = resolvers.findfile(usedsignal,"other text files") or "" + end + if datapath ~= "" and lfs.isfile(datapath) then + datapath = file.dirname(datapath) -- TUG + datapath = file.dirname(datapath) -- data + if datapath == "" then + datapath = resolvers.cleanpath(lfs.currentdir()) + end + end + end + if datapath == "" then + report("invalid datapath, maybe you need to regenerate the file database") + return false + end + if not binpaths or #binpaths == 0 then + report("invalid binpath") + return false + end + for i=1,#binpaths do + local p = file.join(binpaths[i],workname) + if lfs.isfile(p) and lfs.attributes(p,"size") > 10000 then -- avoind stub + fullname = p + break + end + end + if not fullname then + report("unable to locate %s",workname) + return false + end + for i=1,#texworkspaths do + dir.makedirs(file.join(datapath,texworkspaths[i])) + end + os.setenv("TW_INIPATH",datapath) + os.setenv("TW_LIBPATH",datapath) + if not indeed or environment.argument("verbose") then + report("used signal: %s", usedsignal) + report("data path : %s", datapath) + report("full name : %s", fullname) + report("set paths : TW_INIPATH TW_LIBPATH") + end + if indeed then + os.launch(fullname) + end +end + +if environment.argument("start") then + scripts.texworks.start(true) +elseif environment.argument("test") then + scripts.texworks.start() +elseif environment.argument("exporthelp") then + application.export(environment.argument("exporthelp"),environment.files[1]) +else + application.help() +end |