diff options
| -rwxr-xr-x | luaotfload-tool.lua | 44 | 
1 files changed, 31 insertions, 13 deletions
| diff --git a/luaotfload-tool.lua b/luaotfload-tool.lua index 825f888..add8c16 100755 --- a/luaotfload-tool.lua +++ b/luaotfload-tool.lua @@ -132,6 +132,7 @@ require "lualibs"  local lua_of_json               = utilities.json.tolua  local ioloaddata                = io.loaddata +local tabletohash               = table.tohash  --[[doc--  \fileent{luatex-basics-gen.lua} calls functions from the @@ -662,7 +663,7 @@ local action_sequence = {      "blacklist", "cache", "flush",   "generate",      "list",      "query",  } -local action_pending  = table.tohash(action_sequence, false) +local action_pending  = tabletohash(action_sequence, false)  action_pending.loglevel = true  --- always set the loglevel  action_pending.generate = false --- this is the default action @@ -927,15 +928,11 @@ actions.list = function (job)  end  do -    local status_file = "luaotfload-status" -      local out = function (...)          logs.names_report (false, 0, "diagnose", ...)      end -    local verify_files = function (errcnt) -        out "Loading file hashes." -        local info   = require (status_file) +    local verify_files = function (errcnt, info)          local hashes = info.hashes          local notes  = info.notes          if not hashes or #hashes == 0 then @@ -979,7 +976,7 @@ do                  end              end          end -        return errcnt, notes +        return errcnt      end      local check_upstream @@ -1175,13 +1172,33 @@ do      end      --- github api stuff end +    local anamneses   = { "verify", "repository", } +    local status_file = "luaotfload-status"      actions.diagnose = function (job)          local errcnt = 0 -        errcnt, notes = verify_files (errcnt) -        --errcnt = check_upstream (notes.revision) +        local asked  = job.asked_diagnostics +        if asked == "all" or asked == "thorough" then +            asked = tabletohash (anamneses, true) +        else +            asked = lpegmatch(split_comma, asked) +            asked = tabletohash (asked, true) +        end + +        out "Loading file hashes." +        local info = require (status_file) + +        if asked.verify == true then +            errcnt = verify_files (errcnt, info) +        end +--        if asked.xxx == true then +--            errcnt = xxx (errcnt) +--        end +        if asked.repository == true then +            --errcnt = check_upstream (info.notes.revision) +            check_upstream (info.notes.revision) +        end -        check_upstream (notes.revision)          if errcnt == 0 then --> success              out ("Everything appears to be in order, \z @@ -1253,7 +1270,7 @@ local process_cmdline = function ( ) -- unit -> jobspec      local long_options = {          alias              = 1,          cache              = 1, -        diagnose           = "d", +        diagnose           = 1,          ["dry-run"]        = "D",          ["flush-lookups"]  = "l",          fields             = 1, @@ -1275,7 +1292,7 @@ local process_cmdline = function ( ) -- unit -> jobspec          warnings           = "w",      } -    local short_options = "bdDfFiIlpquvVhw" +    local short_options = "bDfFiIlpquvVhw"      local options, _, optarg =          alt_getopt.get_ordered_opts (arg, short_options, long_options) @@ -1349,8 +1366,9 @@ local process_cmdline = function ( ) -- unit -> jobspec              config.luaotfload.prioritize = "texmf"          elseif v == "b" then              action_pending["blacklist"] = true -        elseif v == "d" then +        elseif v == "diagnose" then              action_pending["diagnose"] = true +            result.asked_diagnostics = optarg[n]          end      end | 
