diff options
| author | KunoiSayami <[email protected]> | 2022-10-25 13:10:14 +0800 |
|---|---|---|
| committer | KunoiSayami <[email protected]> | 2022-10-25 13:10:14 +0800 |
| commit | 978011b008721d66b12dd00f6fe552d39f7b4b70 (patch) | |
| tree | 77a3c3ae87d3c83131a21837efe01ef1729fc642 /utils | |
| parent | 8aa2177d248e0a8d35ceb9355cc1d92f90a85aa0 (diff) | |
feat(script): Optimize hook and build script
Signed-off-by: KunoiSayami <[email protected]>
Diffstat (limited to 'utils')
| -rwxr-xr-x | utils/ng/pkgbuild.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/utils/ng/pkgbuild.py b/utils/ng/pkgbuild.py index 507d79c..8be755a 100755 --- a/utils/ng/pkgbuild.py +++ b/utils/ng/pkgbuild.py @@ -345,6 +345,7 @@ async def do_build(target: PackageVersionWithPath) -> int: if build_ret != 0: if build_ret == 13: logger.warning("Already build %s, skipped.", base_dir_name) + return 0 FAIL_REPOS.append(base_dir_name) logger.warning("Build %s fail: %d", base_dir_name, build_ret) @@ -353,7 +354,10 @@ async def do_build(target: PackageVersionWithPath) -> int: async def clean_installed_packages() -> int: p = await asyncio.create_subprocess_exec( - "/bin/bash", "-c", "sudo pacman --noconfirm -Rcns $(pacman -Qdtq)", stdout=None + "/bin/bash", "-c", + "PKGS=$(pacman -Qdtq | tr '\n' ' '); " + "if [ -n \"$PKGS\" ]; then echo $PKGS | xargs sudo pacman --noconfirm -Rcns ; fi", + stdout=None ) await p.wait() return p.returncode @@ -408,10 +412,15 @@ async def do_work( if not target.arch: logger.info("Skipped %s (Architecture not match)", target.name) continue - if (await do_build(target)) != 0 and fail_fast: - break + if (await do_build(target)) != 0: + if fail_fast: + break + else: + await asyncio.sleep(5) if run_auto_remove: await clean_installed_packages() + for _ in range(3): + logger.debug("---------------------------------------------------------") if (src_dst := pathlib.Path(BUILD_ENVS.src_dest).resolve()).is_dir(): shutil.rmtree(str(src_dst), ignore_errors=True) |
