jbe@206: function execute._create_sorted_execution_list(add_paths, execute_func) jbe@206: local entries = {} jbe@206: add_paths(function(...) jbe@206: local full_path = encode.file_path(WEBMCP_BASE_PATH, "app", ...) jbe@206: local relative_path = encode.file_path("", ...) jbe@206: local filenames = extos.listdir(full_path) jbe@206: if filenames then jbe@206: table.sort(filenames) -- not really neccessary, due to sorting afterwards jbe@206: for i, filename in ipairs(filenames) do jbe@206: if string.find(filename, "%.lua$") then jbe@206: if entries[filename] then jbe@206: error('More than one filter or initializer is named "' .. filter_name .. '".') jbe@206: end jbe@206: entries[#entries+1] = filename jbe@206: entries[filename] = function() jbe@206: execute_func( jbe@206: encode.file_path(full_path, filename), jbe@206: encode.file_path(relative_path, filename) jbe@206: ) jbe@206: end jbe/bsw@0: end jbe/bsw@0: end jbe/bsw@0: end jbe@206: end) jbe@206: table.sort(entries) jbe@206: for idx, filename in ipairs(entries) do jbe@206: entries[idx] = enteries[filename] jbe@206: entries[filename] = nil jbe/bsw@0: end jbe@206: return entries jbe/bsw@0: end