# HG changeset patch # User Matthew Wild # Date 1289418607 0 # Node ID 2084959d40964dfeb35c1e7fe6dd4f2bf7478041 # Parent 954b1159f2f3466f1a849fa6eae0b43c1a3c1686 configmanager: Update Include and RunScript directives to support paths relative to the (current!) config file diff -r 954b1159f2f3 -r 2084959d4096 core/configmanager.lua --- a/core/configmanager.lua Wed Nov 10 19:46:53 2010 +0000 +++ b/core/configmanager.lua Wed Nov 10 19:50:07 2010 +0000 @@ -145,7 +145,7 @@ env = setmetatable({ Host = true, host = true, VirtualHost = true, Component = true, component = true, - Include = true, include = true, RunScript = dofile }, { + Include = true, include = true, RunScript = true }, { __index = function (t, k) return rawget(_G, k) or function (settings_table) @@ -205,6 +205,7 @@ local f, err = io.open(file); if f then local data = f:read("*a"); + local file = resolve_relative_path(filename:gsub("[^"..path_sep.."]+$", ""), file); local ok, err = parsers.lua.load(data, file); if not ok then error(err:gsub("%[string.-%]", file), 0); end end @@ -213,6 +214,10 @@ end env.include = env.Include; + function env.RunScript(file) + return dofile(resolve_relative_path(filename:gsub("[^"..path_sep.."]+$", ""), file)); + end + local chunk, err = loadstring(data, "@"..filename); if not chunk then