diff --git a/scripts/release-android.sh b/scripts/release-android.sh index 23491a2..99b3bc0 100755 --- a/scripts/release-android.sh +++ b/scripts/release-android.sh @@ -141,8 +141,8 @@ preflight_status="$(curl -sS "${auth_args[@]}" -o /dev/null -w '%{http_code}' "$ read_version() { local code name - code="$(sed -nE 's/^[[:space:]]*versionCode = ([0-9]+).*$/\1/p' "$VERSION_FILE" | head -n 1)" - name="$(sed -nE 's/^[[:space:]]*versionName = "([^"]+)".*$/\1/p' "$VERSION_FILE" | head -n 1)" + code="$(sed -nE 's/^[[:space:]]*versionCode = ([0-9]+).*$/\1/p' "$VERSION_FILE" | sed -n '1p')" + name="$(sed -nE 's/^[[:space:]]*versionName = "([^"]+)".*$/\1/p' "$VERSION_FILE" | sed -n '1p')" [[ "$code" =~ ^[0-9]+$ ]] || { echo "Nie można odczytać versionCode." >&2; return 1; } [[ "$name" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "versionName musi mieć format major.minor.patch." >&2; return 1; } printf '%s %s\n' "$code" "$name" @@ -213,13 +213,13 @@ aab_source="$(find app/build/outputs/bundle/release -maxdepth 1 -type f -name '* sdk_dir="${ANDROID_HOME:-${ANDROID_SDK_ROOT:-}}" if [[ -z "$sdk_dir" && -f local.properties ]]; then - sdk_dir="$(sed -n 's/^sdk.dir=//p' local.properties | head -n 1)" + sdk_dir="$(sed -n 's/^sdk.dir=//p' local.properties | sed -n '1p')" fi apksigner="$(find "$sdk_dir/build-tools" -type f -name apksigner 2>/dev/null | sort -V | tail -n 1)" aapt="$(find "$sdk_dir/build-tools" -type f -name aapt 2>/dev/null | sort -V | tail -n 1)" [[ -x "$apksigner" && -x "$aapt" ]] || { echo "Nie znaleziono apksigner/aapt w Android SDK." >&2; exit 1; } "$apksigner" verify --verbose "$apk_source" -apk_badging="$("$aapt" dump badging "$apk_source" | head -n 1)" +apk_badging="$("$aapt" dump badging "$apk_source" | sed -n '1p')" [[ "$apk_badging" == *"versionCode='$next_code'"* && "$apk_badging" == *"versionName='$next_name'"* ]] || { echo "APK ma inny numer wersji niż oczekiwany $next_name ($next_code)." >&2 exit 1 @@ -258,7 +258,7 @@ if [[ -n "$NOTES_FILE" ]]; then [[ -f "$NOTES_FILE" ]] || { echo "Nie istnieje plik release notes: $NOTES_FILE" >&2; exit 1; } release_notes="$(<"$NOTES_FILE")" else - previous_tag="$(git tag --sort=-version:refname | grep -Fxv "$tag_name" | head -n 1 || true)" + previous_tag="$(git tag --sort=-version:refname | grep -Fxv "$tag_name" | sed -n '1p' || true)" if [[ -n "$previous_tag" ]]; then changes="$(git log --format='- %s (%h)' "$previous_tag..HEAD")" else @@ -309,7 +309,7 @@ upload_asset() { local assets_response existing_asset_id upload_response upload_status assets_response="$(mktemp)" curl -fsS "${auth_args[@]}" -o "$assets_response" "$api_base/releases/$release_id/assets" - existing_asset_id="$(jq -r --arg name "$asset_name" '.[] | select(.name == $name) | .id' "$assets_response" | head -n 1)" + existing_asset_id="$(jq -r --arg name "$asset_name" '.[] | select(.name == $name) | .id' "$assets_response" | sed -n '1p')" if [[ -n "$existing_asset_id" ]]; then curl -fsS "${auth_args[@]}" -X DELETE "$api_base/releases/$release_id/assets/$existing_asset_id" >/dev/null fi @@ -332,7 +332,7 @@ upload_asset "$artifact_dir/SHA256SUMS.txt" "SHA256SUMS.txt" "text/plain" assets_response="$(mktemp)" curl -fsS "${auth_args[@]}" -o "$assets_response" "$api_base/releases/$release_id/assets" -published_apk_url="$(jq -r --arg name "$gitea_apk_name" '.[] | select(.name == $name) | .browser_download_url' "$assets_response" | head -n 1)" +published_apk_url="$(jq -r --arg name "$gitea_apk_name" '.[] | select(.name == $name) | .browser_download_url' "$assets_response" | sed -n '1p')" [[ -n "$published_apk_url" && "$published_apk_url" != "null" ]] || { echo "Nie znaleziono opublikowanego APK w Gitea Release." >&2 exit 1