diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/context/lua/mtxrun.lua | 46 | ||||
| -rw-r--r-- | scripts/context/stubs/mswin/mtxrun.lua | 46 | ||||
| -rw-r--r-- | scripts/context/stubs/unix/mtxrun | 46 | 
3 files changed, 129 insertions, 9 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 13d78333b..03b51ff02 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -11960,6 +11960,7 @@ function resolvers.newinstance() -- todo: all vars will become lowercase and alp          remember        = true,          diskcache       = true,          renewcache      = false, +        renewtree       = false,          loaderror       = false,          savelists       = true,          pattern         = nil, -- lists @@ -12270,6 +12271,39 @@ local function save_file_databases() -- will become cachers      end  end +function resolvers.renew(hashname) +    if hashname and hashname ~= "" then +        local expanded = resolvers.expansion(hashname) or "" +        if expanded ~= "" then +            if trace_locating then +                report_resolving("identifying tree '%s' from '%s'",expanded,hashname) +            end +            hashname = expanded +        else +            if trace_locating then +                report_resolving("identifying tree '%s'",hashname) +            end +        end +        local realpath = resolvers.resolve(hashname) +        if lfs.isdir(realpath) then +            if trace_locating then +                report_resolving("using path '%s'",realpath) +            end +            methodhandler('generators',hashname) +            -- could be shared +            local content = instance.files[hashname] +            caches.collapsecontent(content) +            if trace_locating then +                report_resolving("saving tree '%s'",hashname) +            end +            caches.savecontent(hashname,"files",content) +            -- till here +        else +            report_resolving("invalid path '%s'",realpath) +        end +    end +end +  local function load_databases()      locate_file_databases()      if instance.diskcache and not instance.renewcache then @@ -16169,9 +16203,15 @@ elseif e_argument("generate") then      -- luatools -    instance.renewcache = true -    trackers.enable("resolvers.locating") -    resolvers.load() +    if filename and filename ~= "" then +        resolvers.load("nofiles") +        trackers.enable("resolvers.locating") +        resolvers.renew(filename) +    else +        instance.renewcache = true +        trackers.enable("resolvers.locating") +        resolvers.load() +    end      e_verbose = true diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 13d78333b..03b51ff02 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -11960,6 +11960,7 @@ function resolvers.newinstance() -- todo: all vars will become lowercase and alp          remember        = true,          diskcache       = true,          renewcache      = false, +        renewtree       = false,          loaderror       = false,          savelists       = true,          pattern         = nil, -- lists @@ -12270,6 +12271,39 @@ local function save_file_databases() -- will become cachers      end  end +function resolvers.renew(hashname) +    if hashname and hashname ~= "" then +        local expanded = resolvers.expansion(hashname) or "" +        if expanded ~= "" then +            if trace_locating then +                report_resolving("identifying tree '%s' from '%s'",expanded,hashname) +            end +            hashname = expanded +        else +            if trace_locating then +                report_resolving("identifying tree '%s'",hashname) +            end +        end +        local realpath = resolvers.resolve(hashname) +        if lfs.isdir(realpath) then +            if trace_locating then +                report_resolving("using path '%s'",realpath) +            end +            methodhandler('generators',hashname) +            -- could be shared +            local content = instance.files[hashname] +            caches.collapsecontent(content) +            if trace_locating then +                report_resolving("saving tree '%s'",hashname) +            end +            caches.savecontent(hashname,"files",content) +            -- till here +        else +            report_resolving("invalid path '%s'",realpath) +        end +    end +end +  local function load_databases()      locate_file_databases()      if instance.diskcache and not instance.renewcache then @@ -16169,9 +16203,15 @@ elseif e_argument("generate") then      -- luatools -    instance.renewcache = true -    trackers.enable("resolvers.locating") -    resolvers.load() +    if filename and filename ~= "" then +        resolvers.load("nofiles") +        trackers.enable("resolvers.locating") +        resolvers.renew(filename) +    else +        instance.renewcache = true +        trackers.enable("resolvers.locating") +        resolvers.load() +    end      e_verbose = true diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 13d78333b..03b51ff02 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -11960,6 +11960,7 @@ function resolvers.newinstance() -- todo: all vars will become lowercase and alp          remember        = true,          diskcache       = true,          renewcache      = false, +        renewtree       = false,          loaderror       = false,          savelists       = true,          pattern         = nil, -- lists @@ -12270,6 +12271,39 @@ local function save_file_databases() -- will become cachers      end  end +function resolvers.renew(hashname) +    if hashname and hashname ~= "" then +        local expanded = resolvers.expansion(hashname) or "" +        if expanded ~= "" then +            if trace_locating then +                report_resolving("identifying tree '%s' from '%s'",expanded,hashname) +            end +            hashname = expanded +        else +            if trace_locating then +                report_resolving("identifying tree '%s'",hashname) +            end +        end +        local realpath = resolvers.resolve(hashname) +        if lfs.isdir(realpath) then +            if trace_locating then +                report_resolving("using path '%s'",realpath) +            end +            methodhandler('generators',hashname) +            -- could be shared +            local content = instance.files[hashname] +            caches.collapsecontent(content) +            if trace_locating then +                report_resolving("saving tree '%s'",hashname) +            end +            caches.savecontent(hashname,"files",content) +            -- till here +        else +            report_resolving("invalid path '%s'",realpath) +        end +    end +end +  local function load_databases()      locate_file_databases()      if instance.diskcache and not instance.renewcache then @@ -16169,9 +16203,15 @@ elseif e_argument("generate") then      -- luatools -    instance.renewcache = true -    trackers.enable("resolvers.locating") -    resolvers.load() +    if filename and filename ~= "" then +        resolvers.load("nofiles") +        trackers.enable("resolvers.locating") +        resolvers.renew(filename) +    else +        instance.renewcache = true +        trackers.enable("resolvers.locating") +        resolvers.load() +    end      e_verbose = true  | 
