From 3703e7131d13d186cfc1b3bf239b1b01fb661863 Mon Sep 17 00:00:00 2001 From: syui Date: Mon, 23 Mar 2026 05:11:03 +0900 Subject: [PATCH] skip unchanged packages in repo-pkg-build --- cfg/repo.sh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/cfg/repo.sh b/cfg/repo.sh index c46b687..7daa70e 100755 --- a/cfg/repo.sh +++ b/cfg/repo.sh @@ -36,17 +36,27 @@ mkdir -p "$WORK" cd "$WORK" git clone --depth 1 https://git.syui.ai/ai/os.git -for pkg in ailog aigpt aishell; do - echo "=== Building $pkg ===" - cp -r "$WORK/os/pkg/$pkg" "$WORK/$pkg" - cd "$WORK/$pkg" - makepkg -sf --noconfirm --sign --key "$GPG_KEY" - cd "$WORK" -done +typeset -A PKG_REPOS +PKG_REPOS=(ailog log aigpt gpt aishell shell) mkdir -p "$REPO_DIR/x86_64" for pkg in ailog aigpt aishell; do + repo_name="${PKG_REPOS[$pkg]}" + remote_hash=$(git ls-remote --heads "https://git.syui.ai/ai/${repo_name}.git" main | cut -c1-7) + existing=$(ls "$REPO_DIR/x86_64/${pkg}"-*.pkg.tar.zst 2>/dev/null | head -1) + + if [ -n "$existing" ] && echo "$existing" | grep -q "\.g${remote_hash}-"; then + echo "=== $pkg unchanged (${remote_hash}), skipping ===" + continue + fi + + echo "=== Building $pkg (${remote_hash}) ===" + cp -r "$WORK/os/pkg/$pkg" "$WORK/$pkg" + cd "$WORK/$pkg" + makepkg -sf --noconfirm --sign --key "$GPG_KEY" + cd "$WORK" + rm -f "$REPO_DIR/x86_64/${pkg}"-*.pkg.tar.zst rm -f "$REPO_DIR/x86_64/${pkg}"-*.pkg.tar.zst.sig rm -f "$REPO_DIR/x86_64/${pkg}-debug"-*.pkg.tar.zst