diff --git a/scripts/apk/publish-gitea.sh b/scripts/apk/publish-gitea.sh index 92fbefd..f9710a4 100755 --- a/scripts/apk/publish-gitea.sh +++ b/scripts/apk/publish-gitea.sh @@ -46,9 +46,23 @@ if [[ "${#apks[@]}" -eq 0 ]]; then exit 1 fi -printf 'Publishing %d APK files to %s\n' "${#apks[@]}" "${upload_url}" - +declare -A published_filenames=() +unique_apks=() for apk in "${apks[@]}"; do + filename="$(basename "${apk}")" + if [[ -n "${published_filenames[${filename}]:-}" ]]; then + continue + fi + published_filenames["${filename}"]=1 + unique_apks+=("${apk}") +done + +printf 'Publishing %d APK files to %s\n' "${#unique_apks[@]}" "${upload_url}" +if [[ "${#unique_apks[@]}" -ne "${#apks[@]}" ]]; then + printf 'Skipping %d duplicate local APK filename(s)\n' "$((${#apks[@]} - ${#unique_apks[@]}))" +fi + +for apk in "${unique_apks[@]}"; do filename="$(basename "${apk}")" status="$( curl --silent --show-error --location \