chore: prepare for `global_env_def` file
ci/woodpecker/pr/build Pipeline was successful Details
ci/woodpecker/pr/docker-build Pipeline was successful Details
ci/woodpecker/pr/lint Pipeline was successful Details

This commit is contained in:
Aire-One 2022-12-22 21:21:57 +01:00
parent ff60093bbe
commit b8cd7e3db8
1 changed files with 47 additions and 15 deletions

View File

@ -11,32 +11,64 @@ local log = logger.log("main")
log:info(logger.message_with_metadata("Start", { property = property }))
local index = crawler.fetch(property.base_url .. property.index_uri)
local function module_lists(
doc_index_url: string,
global_modules: List<string>,
ignored_modules: List<string>
): List<Module_Info.Module_Info>, List<Module_Info.Module_Info>, List<Module_Info.Module_Info>
local index = crawler.fetch(doc_index_url)
local all_module_infos = List(scraper.module_info_list.get_modules_from_index(index))
local ignored_modules = List(property.ignored_modules)
local module_infos = List(scraper.module_info_list.get_modules_from_index(index)):filter(
function(module: Module_Info.Module_Info): boolean
return not ignored_modules:contains(module.name)
local global_module_infos: List<Module_Info.Module_Info> = List()
local module_infos: List<Module_Info.Module_Info> = List()
for module in all_module_infos:iter() do
if global_modules:contains(module.name) then
global_module_infos:append(module)
elseif not ignored_modules:contains(module.name) then
module_infos:append(module)
end
end
return all_module_infos, module_infos, global_module_infos
end
local function do_one_file(
url: string,
record_name: string,
output_path: string
)
log:info("Finished Module List scrapping, found " .. #module_infos .. " modules")
local function do_one_file(url: string, output_base_dir: string)
local module_name = url:gsub(".*/", ""):gsub(".html", "")
local html = crawler.fetch(url)
local module_doc = scraper.module_doc.get_doc_from_page(html, module_name)
local module_doc = scraper.module_doc.get_doc_from_page(html, record_name)
module_doc:fixup()
module_doc:populate_requires()
filesystem.file_writer.write(
generator.teal_type_definitions.generate_teal(module_doc),
output_base_dir .. module_name:gsub("%.", "/") .. ".d.tl"
output_path
)
end
for i = 1, #module_infos do
local all_module_infos, module_infos, global_module_infos = module_lists(
property.base_url .. property.index_uri,
List(property.capi_modules),
List(property.ignored_modules)
)
log:info(
logger.message_with_metadata(
"Finished Module List scrapping",
{
total_module_count = #all_module_infos,
module_count = #module_infos,
global_module_count = #global_module_infos
}
)
)
for module in module_infos:iter() do
do_one_file(
property.base_url .. "/" .. module_infos[i].uri,
property.out_directory .. "/"
property.base_url .. "/" .. module.uri,
module.name,
property.out_directory .. "/" .. module.name:gsub("%.", "/") .. ".d.tl"
)
end