Files
server_manager/scripts/package/clean_artifacts.py
T
2026-05-22 00:16:08 +08:00

61 lines
1.4 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Remove generated packaging intermediates after installer builds."""
from __future__ import annotations
import shutil
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
def _is_inside_root(path: Path) -> bool:
try:
path.resolve().relative_to(ROOT.resolve())
return True
except ValueError:
return False
def _remove_dir(path: Path) -> None:
if path.exists() and path.is_dir() and _is_inside_root(path):
shutil.rmtree(path, ignore_errors=True)
print(f" removed dir: {path.relative_to(ROOT)}")
def _remove_file(path: Path) -> None:
if path.exists() and path.is_file() and _is_inside_root(path):
try:
path.unlink()
print(f" removed file: {path.relative_to(ROOT)}")
except OSError:
pass
def main() -> int:
print("[cleanup] removing generated packaging intermediates...")
for rel in (
"src/dist",
"src/build",
"src/build_mini",
"build/output/config",
):
_remove_dir(ROOT / rel)
for pycache in ROOT.rglob("__pycache__"):
_remove_dir(pycache)
for pattern in ("*.pyc", "*.pyo", "*.spec"):
for item in ROOT.rglob(pattern):
_remove_file(item)
print("[cleanup] done.")
return 0
if __name__ == "__main__":
raise SystemExit(main())