diff options
-rw-r--r-- | scripts/context/lua/mtx-watch.lua | 21 | ||||
-rw-r--r-- | tex/context/base/cont-new.tex | 2 | ||||
-rw-r--r-- | tex/context/base/context.tex | 2 | ||||
-rw-r--r-- | tex/context/base/core-ctx.lua | 6 | ||||
-rw-r--r-- | tex/context/base/grph-inc.lua | 78 | ||||
-rw-r--r-- | tex/context/base/l-file.lua | 18 | ||||
-rw-r--r-- | tex/context/base/l-os.lua | 15 | ||||
-rw-r--r-- | tex/context/base/trac-lmx.lua | 1 | ||||
-rw-r--r-- | tex/context/base/type-otf.mkiv | 16 | ||||
-rw-r--r-- | tex/generic/context/luatex-fonts-merged.lua | 22 |
10 files changed, 131 insertions, 50 deletions
diff --git a/scripts/context/lua/mtx-watch.lua b/scripts/context/lua/mtx-watch.lua index fa4cd0eab..33dc08928 100644 --- a/scripts/context/lua/mtx-watch.lua +++ b/scripts/context/lua/mtx-watch.lua @@ -12,6 +12,11 @@ scripts.watch = scripts.watch or { } local format, concat, difftime, time = string.format, table.concat, os.difftime, os.time local pairs, ipairs, next, type = pairs, ipairs, next, type +-- the machine/instance matches the server app we use + +local machine = socket.dns.gethostname() or "unknown-machine" +local instance = string.match(machine,"(%d+)$") or "0" + function scripts.watch.save_exa_modes(joblog,ctmname) local values = joblog and joblog.values if values then @@ -78,13 +83,20 @@ function scripts.watch.watch() local logpath = environment.argument("logpath") or "" local pipe = environment.argument("pipe") or false local watcher = "mtxwatch.run" - if #environment.files > 0 then - for _, path in ipairs(environment.files) do + local paths = environment.files + if #paths > 0 then + if environment.argument("automachine") then + logpath = string.gsub(logpath,"/machine/","/"..machine.."/") + for i, path in ipairs(paths) do + paths[i] = string.gsub(path,"/machine/","/"..machine.."/") + end + end + for _, path in ipairs(paths) do logs.report("watch", "watching path ".. path) end local function process() local done = false - for _, path in ipairs(environment.files) do + for _, path in ipairs(paths) do lfs.chdir(path) local files = { } glob(files,path) @@ -198,7 +210,7 @@ function scripts.watch.watch() local delta = difftime(currenttime,lasttime) if delta > cleanupdelay then lasttime = currenttime - for _, path in ipairs(environment.files) do + for _, path in ipairs(paths) do if string.find(path,"%.") then -- safeguard, we want a fully qualified path else @@ -343,6 +355,7 @@ messages.help = [[ --watch watch given path [--delay] --pipe use pipe instead of execute --delay delay between sweeps +--automachine replace /machine/ in path /<servername>/ --collect condense log files --cleanup=delay remove files in given path [--force] --showlog show log data diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index 15542b66c..871233559 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2010.02.03 23:06} +\newcontextversion{2010.02.08 19:42} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index ac06bfa14..122df5fdd 100644 --- a/tex/context/base/context.tex +++ b/tex/context/base/context.tex @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2010.02.03 23:06} +\edef\contextversion{2010.02.08 19:42} %D For those who want to use this: diff --git a/tex/context/base/core-ctx.lua b/tex/context/base/core-ctx.lua index 816c8ff57..1dad7c2d7 100644 --- a/tex/context/base/core-ctx.lua +++ b/tex/context/base/core-ctx.lua @@ -73,7 +73,7 @@ local processfile = commands.processfile local doifinputfileelse = commands.doifinputfileelse function commands.processfile(name,maxreadlevel) -- overloaded - local prepname = found and resolve(name) + local prepname = resolve(name) if prepname then return processfile(prepname,0) end @@ -81,7 +81,7 @@ function commands.processfile(name,maxreadlevel) -- overloaded end function commands.doifinputfileelse(name,depth) - local prepname = found and resolve(name) + local prepname = resolve(name) if prepname then return doifinputfileelse(prepname,0) end @@ -89,5 +89,5 @@ function commands.doifinputfileelse(name,depth) end function commands.preparedfile(name) - return (found and resolve(name)) or name + return resolve(name) or name end diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua index 352f071f7..b90a938bb 100644 --- a/tex/context/base/grph-inc.lua +++ b/tex/context/base/grph-inc.lua @@ -38,12 +38,14 @@ run TeX code from within Lua. Some more functionality will move to Lua. local format, lower, find, match, gsub, gmatch = string.format, string.lower, string.find, string.match, string.gsub, string.gmatch local texsprint, texbox, texwd, texht, texdp = tex.sprint, tex.box, tex.wd, tex.ht, tex.dp local contains = table.contains +local concat = table.concat local ctxcatcodes = tex.ctxcatcodes local variables = interfaces.variables -local trace_figures = false trackers.register("figures.locating",function(v) trace_figures = v end) -local trace_bases = false trackers.register("figures.bases", function(v) trace_bases = v end) +local trace_figures = false trackers.register("figures.locating", function(v) trace_figures = v end) +local trace_bases = false trackers.register("figures.bases", function(v) trace_bases = v end) +local trace_programs = false trackers.register("figures.programs", function(v) trace_programs = v end) --- some extra img functions --- @@ -198,7 +200,7 @@ function figures.setpaths(locationset,pathlist) figures.paths, last_pathlist = t, pathlist if trace_figures then commands.writestatus("figures","locations: %s",last_locationset) - commands.writestatus("figures","path list: %s",table.concat(figures.paths, " ")) + commands.writestatus("figures","path list: %s",concat(figures.paths, " ")) end end @@ -562,6 +564,7 @@ figures.checkers = figures.checkers or { } figures.includers = figures.includers or { } figures.converters = figures.converters or { } figures.identifiers = figures.identifiers or { } +figures.programs = figures.programs or { } figures.identifiers.list = { figures.identifiers.default @@ -796,25 +799,70 @@ function figures.checkers.tex(data) end figures.includers.tex = figures.includers.nongeneric +-- -- -- converters -- -- -- + +local function makeoptions(program) + local to = type(options) + return (to == "table" and concat(options," ")) or (to == "string" and options) or "" +end + +local function runprogram(...) + local command = format(...) + if trace_programs then + logs.report("figures","running %s",command) + end + os.spawn(command) +end + -- -- -- eps -- -- -- +figures.programs.gs = { + options = { + "-dAutoRotatePages=/None", + "-dPDFSETTINGS=/prepress", + "-dEPSCrop", + }, + command = (os.type == "windows" and "gswin32") or "gs" +} + function figures.converters.eps(oldname,newname) - -- hack, we need a lua based converter script, or better, we should use - -- rlx as alternative - local outputpath = file.dirname(newname) - local outputbase = file.basename(newname) - if outputpath == "" then outputpath = "." end - local command = format("mtxrun bin:pstopdf --outputpath=%s %s",outputpath,oldname) - os.spawn(command) + local gs = figures.programs.gs + runprogram ( + '%s -q -sDEVICE=pdfwrite -dNOPAUSE -dNOCACHE -dBATCH %s -sOutputFile="%s" "%s" -c quit', + gs.command, makeoptions(gs.options), newname, oldname + ) end -figures.converters.svg = figures.converters.eps +-- -- -- svg -- -- -- + +figures.programs.inkscape = { + command = "inkscape" +} + +function figures.converters.svg(oldname,newname) + -- inkscape on windows only works with complete paths + local inkscape = figures.programs.inkscape + oldname, newname = dir.expand_name(oldname), dir.expand_name(newname) + runprogram ( + '%s "%s" --export-pdf="%s" %s', + inkscape.command, oldname, newname, makeoptions(inkscape.options) + ) +end + +figures.converters.svgz = figures.converters.svg + +-- -- -- gif -- -- -- + +figures.programs.convert = { + command = "convert" -- imagemagick +} function figures.converters.gif(oldname,newname) - -- hack, we need a lua based converter script, or better, we should use - -- rlx as alternative - local command = format("mtxrun bin:convert %s %s",oldname,newname) - os.spawn(command) + local convert = figures.programs.convert + runprogram ( + "convert %s %s", + convert.command, makeoptions(convert.options), oldname, newname + ) end -- -- -- lowres -- -- -- diff --git a/tex/context/base/l-file.lua b/tex/context/base/l-file.lua index c95ef658c..87ae6e7fe 100644 --- a/tex/context/base/l-file.lua +++ b/tex/context/base/l-file.lua @@ -107,15 +107,17 @@ function file.join_path(tab) end function file.collapse_path(str) - str = gsub(str,"/%./","/") - local n, m = 1, 1 - while n > 0 or m > 0 do - str, n = gsub(str,"[^/%.]+/%.%.$","") - str, m = gsub(str,"[^/%.]+/%.%./","") + if find(str,"/") then + str = gsub(str,"/%./","/") + local n, m = 1, 1 + while n > 0 or m > 0 do + str, n = gsub(str,"[^/%.]+/%.%.$","") + str, m = gsub(str,"[^/%.]+/%.%./","") + end + str = gsub(str,"([^/])/$","%1") + str = gsub(str,"^%./","") + str = gsub(str,"/%.$","") end - str = gsub(str,"([^/])/$","%1") - str = gsub(str,"^%./","") - str = gsub(str,"/%.$","") if str == "" then str = "." end return str end diff --git a/tex/context/base/l-os.lua b/tex/context/base/l-os.lua index d94c5b13a..7dd288877 100644 --- a/tex/context/base/l-os.lua +++ b/tex/context/base/l-os.lua @@ -231,6 +231,21 @@ elseif name == "freebsd" then return platform end +elseif name == "kfreebsd" then + + function os.resolvers.platform(t,k) + -- we sometims have HOSTTYPE set so let's check that first + local platform, architecture = "", os.getenv("HOSTTYPE") or os.resultof("uname -m") or "" + if find(architecture,"x86_64") then + platform = "kfreebsd-64" + else + platform = "kfreebsd-i386" + end + os.setenv("MTX_PLATFORM",platform) + os.platform = platform + return platform + end + else -- platform = "linux" diff --git a/tex/context/base/trac-lmx.lua b/tex/context/base/trac-lmx.lua index 1ea4443cb..664815c66 100644 --- a/tex/context/base/trac-lmx.lua +++ b/tex/context/base/trac-lmx.lua @@ -118,6 +118,7 @@ local cache = { } local trace = false function lmx.new(data,variables) + data = data or "" local known = cache[data] if not known then local definitions = { } diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv index 3779abe5f..c862701e7 100644 --- a/tex/context/base/type-otf.mkiv +++ b/tex/context/base/type-otf.mkiv @@ -419,9 +419,9 @@ % Whatever else we need: \starttypescript - \definefontsynonym [ZapfDingbats] [uzdr] - \definefontsynonym [RalfSmithFormalScript] [rsfs10] - \definefontsynonym [MartinVogel] [fmvr8x] + \definefontsynonym [ZapfDingbats] [uzdr] + \definefontsynonym [RalfSmithFormalScript] [rsfs10] + \definefontsynonym [MartinVogel] [fmvr8x] \stoptypescript % Temp here @@ -486,11 +486,11 @@ \stoptypescript \starttypescript[asana] - \definetypeface [\typescriptone] [rm] [serif] [palatino] [default] - \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [rscale=1.075] - \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.075] - \definetypeface [\typescriptone] [mm] [math] [\typescriptone] [default] - \quittypescriptscanning + \definetypeface [\typescriptone] [rm] [serif] [palatino] [default] + \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [rscale=1.075] + \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.075] + \definetypeface [\typescriptone] [mm] [math] [\typescriptone] [default] + \quittypescriptscanning \stoptypescript \stoptypescriptcollection diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index b6e57ed2a..69446a8e6 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua --- merge date : 02/02/10 23:13:26 +-- merge date : 02/08/10 19:47:32 do -- begin closure to overcome local limits and interference @@ -1543,15 +1543,17 @@ function file.join_path(tab) end function file.collapse_path(str) - str = gsub(str,"/%./","/") - local n, m = 1, 1 - while n > 0 or m > 0 do - str, n = gsub(str,"[^/%.]+/%.%.$","") - str, m = gsub(str,"[^/%.]+/%.%./","") - end - str = gsub(str,"([^/])/$","%1") - str = gsub(str,"^%./","") - str = gsub(str,"/%.$","") + if find(str,"/") then + str = gsub(str,"/%./","/") + local n, m = 1, 1 + while n > 0 or m > 0 do + str, n = gsub(str,"[^/%.]+/%.%.$","") + str, m = gsub(str,"[^/%.]+/%.%./","") + end + str = gsub(str,"([^/])/$","%1") + str = gsub(str,"^%./","") + str = gsub(str,"/%.$","") + end if str == "" then str = "." end return str end |