diff --git a/apps/nginx/module-installer.py b/apps/nginx/module-installer.py index ee3b892..dc60269 100644 --- a/apps/nginx/module-installer.py +++ b/apps/nginx/module-installer.py @@ -32,7 +32,8 @@ def get_nginx_info() -> tuple[str | None, str | None]: return (None, None) -def download_and_unpack(url: str) -> str: +def download_and_unpack(module: dict) -> str: + url = module["url"] print(f"Downloading '{url}'...") file_name = url.split("/")[-1] if Path(file_name).exists(): @@ -46,7 +47,7 @@ def download_and_unpack(url: str) -> str: print("Unpacking...") subprocess.call(["tar", "zxvf", file_name]) print(f"Download and unpack complete: {file_name} to {file_name_without_ext}") - return file_name_without_ext + return module["name"] def main(): @@ -77,9 +78,9 @@ def main(): source_dir = download_and_unpack(nginx_url) module_source_dirs = [] for module in config["modules"]: - print(f"Downloading module: {module}") + print(f"Downloading module: {module['name']}") module_source_dir = download_and_unpack(module) - print(f"Module '{module}' downloaded successfully.") + print(f"Module '{module['name']}' downloaded successfully.") module_source_dirs.append(module_source_dir) # Configure and build modules args = [f"--add-dynamic-module=../{dir}" for dir in module_source_dirs] @@ -87,12 +88,10 @@ def main(): subprocess.call(["./configure", "--with-compat", *args], cwd=source_dir) subprocess.call(["make", "modules"], cwd=source_dir) # Copy .so files to module path - for module in module_source_dirs: - so_file = f"{module}.so" - source_so_path = f"{source_dir}/objs/{so_file}" - dest_so_path = f"{module_path}/{so_file}" - print(f"Copying {source_so_path} to {dest_so_path}...") - subprocess.call(["cp", source_so_path, dest_so_path]) + for child in Path(f"{source_dir}/objs").iterdir(): + if child.suffix == ".so": + print(f"Copying module: {child.name}") + subprocess.call(["cp", child.resolve(), module_path]) print("All modules installed successfully.") diff --git a/apps/nginx/ngx_modules.json b/apps/nginx/ngx_modules.json index c3c17c2..5b286eb 100644 --- a/apps/nginx/ngx_modules.json +++ b/apps/nginx/ngx_modules.json @@ -1,6 +1,12 @@ { "modules": [ - "https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/3.4.tar.gz", - "https://github.com/linsongze/ngx_http_image_filter_module/archive/refs/heads/master.tar.gz" + { + "name": "ngx_http_geoip2_module-3.4", + "url": "https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/3.4.tar.gz" + }, + { + "name": "ngx_http_image_filter_module-master", + "url": "https://github.com/linsongze/ngx_http_image_filter_module/archive/refs/heads/master.tar.gz" + } ] }