From d6ae748e3558e130886071f221e3162800ecd88b Mon Sep 17 00:00:00 2001 From: linsui <2873532-linsui@users.noreply.gitlab.com> Date: Sun, 25 May 2025 16:59:03 +0800 Subject: [PATCH] tool/keep-latest.sh: only remove exist versions --- tools/keep-latest.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/keep-latest.sh b/tools/keep-latest.sh index 9ecee6753e..f261244cec 100755 --- a/tools/keep-latest.sh +++ b/tools/keep-latest.sh @@ -24,13 +24,14 @@ for file in $changed_files; do keep_num=$(sed -z -E -n 's/.*VercodeOperation:\n(( -[^\n]*\n)+).*/\1/p' "$file" | wc -l) [[ $keep_num == 0 ]] && keep_num=1 - removed_versions=$(grep "\- versionCode: " <<< "$diff" | sed -E -n "s/.*versionCode: ([0-9]+)/\1/p" | jq --slurp '.') new_versions=$(grep "+ versionCode: " <<< "$diff" | sed -E -n "s/.*versionCode: ([0-9]+)/\1/p" | jq --slurp '.') missing_versions=$(jq -r ".\"$appid\" // []" <<< "$missing_builds") failed_versions=$(jq -r "map(select(.[0] == \"$appid\") | .[1])" <<< "$failed_builds") success_versions=$(jq -r "map(select(.[0] == \"$appid\") | .[1])" <<< "$success_builds") + all_versions=$(sed -E -n "s/.*versionCode: ([0-9]+)/\1/p" $file | jq --slurp '.') - remove_versions=$(jq --slurp -r ".[0] + .[2] + .[3] - .[1] - .[4] | sort | unique | .[:-$keep_num][]" <(printf "$new_versions") <(printf "$removed_versions") <(printf "$missing_versions") <(printf "$failed_versions") <(printf "$success_versions")) + remove_versions=$(jq --slurp -r ".[4] - (.[4] - (.[0] + .[1] + .[2] - .[3])) | sort | unique | .[:-$keep_num][]" \ + <(printf "$new_versions") <(printf "$missing_versions") <(printf "$failed_versions") <(printf "$success_versions") <(printf "$all_versions")) if [[ -n $remove_versions ]]; then echo "Cleaning $appid: ${remove_versions//$'\n'/ }"