165 end |
165 end |
166 |
166 |
167 if enable_debug then |
167 if enable_debug then |
168 f:write(require_resource("squish.debug")); |
168 f:write(require_resource("squish.debug")); |
169 end |
169 end |
|
170 |
|
171 print_verbose("Resolving modules..."); |
|
172 do |
|
173 local LUA_DIRSEP = package.config:sub(1,1); |
|
174 local LUA_PATH_MARK = package.config:sub(5,5); |
|
175 |
|
176 local package_path = package.path:gsub("[^;]+", function (path) |
|
177 if not path:match("^%"..LUA_DIRSEP) then |
|
178 return base_path..path; |
|
179 end |
|
180 end):gsub("/%./", "/"); |
|
181 local package_cpath = package.cpath:gsub("[^;]+", function (path) |
|
182 if not path:match("^%"..LUA_DIRSEP) then |
|
183 return base_path..path; |
|
184 end |
|
185 end):gsub("/%./", "/"); |
|
186 |
|
187 function resolve_module(name, path) |
|
188 name = name:gsub("%.", LUA_DIRSEP); |
|
189 for c in path:gmatch("[^;]+") do |
|
190 c = c:gsub("%"..LUA_PATH_MARK, name); |
|
191 print_debug("Looking for "..c) |
|
192 local f = io.open(c); |
|
193 if f then |
|
194 print_debug("Found!"); |
|
195 f:close(); |
|
196 return c; |
|
197 end |
|
198 end |
|
199 return nil; -- not found |
|
200 end |
|
201 |
|
202 for i, module in ipairs(modules) do |
|
203 if not module.path then |
|
204 module.path = resolve_module(module.name, package_path); |
|
205 if not module.path then |
|
206 print_err("Couldn't resolve module: "..module.name); |
|
207 else |
|
208 -- Strip base_path from resolved path |
|
209 module.path = module.path:gsub("^"..base_path:gsub("%p", "%%%1"), ""); |
|
210 end |
|
211 end |
|
212 end |
|
213 end |
|
214 |
170 |
215 |
171 print_verbose("Packing modules..."); |
216 print_verbose("Packing modules..."); |
172 for _, module in ipairs(modules) do |
217 for _, module in ipairs(modules) do |
173 local modulename, path = module.name, base_path..module.path; |
218 local modulename, path = module.name, base_path..module.path; |
174 print_debug("Packing "..modulename.." ("..path..")..."); |
219 print_debug("Packing "..modulename.." ("..path..")..."); |