feat(release): Versionsnummer zaehlt wie ein Kilometerzaehler
Hintere Stellen laufen 0..9 und uebertragen nach vorne (0.2.6.9 → 0.2.7.0, 0.2.9.9 → 0.3.0.0), die vorderste zaehlt einfach weiter (9.9.9.9 → 10.0.0.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -672,7 +672,7 @@ cd android
|
|||||||
### Release auf Gitea veroeffentlichen
|
### Release auf Gitea veroeffentlichen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./release.sh # Version automatisch +1 (0.2.6.1 → 0.2.6.2)
|
./release.sh # Version automatisch +1 (0.2.6.1 → 0.2.6.2, 0.2.6.9 → 0.2.7.0)
|
||||||
./release.sh 1.2.0 # oder Version selbst setzen
|
./release.sh 1.2.0 # oder Version selbst setzen
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -34,14 +34,22 @@ RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC
|
|||||||
# ── Parameter ────────────────────────────────────────────────────────
|
# ── Parameter ────────────────────────────────────────────────────────
|
||||||
# Ohne Angabe: letzte Stelle automatisch hochzaehlen. Mit Angabe: genau diese.
|
# Ohne Angabe: letzte Stelle automatisch hochzaehlen. Mit Angabe: genau diese.
|
||||||
|
|
||||||
# Naechste Version: hoechste aus Datei-Version und letztem Git-Tag, letzte
|
# Naechste Version: hoechste aus Datei-Version und letztem Git-Tag, dann wie
|
||||||
# Stelle +1 (0.2.6.1 → 0.2.6.2). Aufruf: next_version <aktuelle> <tag-prefix>
|
# ein Kilometerzaehler +1: hintere Stellen laufen 0..9 und uebertragen nach
|
||||||
|
# vorne (0.2.6.9 → 0.2.7.0, 0.2.9.9 → 0.3.0.0), die vorderste zaehlt einfach
|
||||||
|
# weiter (9.9.9.9 → 10.0.0.0). Aufruf: next_version <aktuelle> <tag-prefix>
|
||||||
next_version() {
|
next_version() {
|
||||||
local cur="$1" prefix="$2" tagv best
|
local cur="$1" prefix="$2" tagv best
|
||||||
tagv=$(git tag -l "${prefix}*" | sed "s/^${prefix}//" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
tagv=$(git tag -l "${prefix}*" | sed "s/^${prefix}//" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||||
best=$(printf '%s\n%s\n' "$cur" "$tagv" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
best=$(printf '%s\n%s\n' "$cur" "$tagv" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||||
[ -z "$best" ] && best="0.0.0.0"
|
[ -z "$best" ] && best="0.0.0.0"
|
||||||
awk -F. -v OFS=. '{ $NF = $NF + 1; print }' <<< "$best"
|
awk -F. -v OFS=. '{
|
||||||
|
for (i = NF; i >= 1; i--) {
|
||||||
|
if (i == 1 || $i < 9) { $i = $i + 1; break }
|
||||||
|
$i = 0 # 9 → 0, Uebertrag nach vorne
|
||||||
|
}
|
||||||
|
print
|
||||||
|
}' <<< "$best"
|
||||||
}
|
}
|
||||||
|
|
||||||
CURRENT=$(grep -m1 "versionName" android/app/build.gradle | sed -E "s/.*versionName '([^']*)'.*/\1/")
|
CURRENT=$(grep -m1 "versionName" android/app/build.gradle | sed -E "s/.*versionName '([^']*)'.*/\1/")
|
||||||
|
|||||||
+11
-3
@@ -19,14 +19,22 @@ NC='\033[0m'
|
|||||||
# ── Parameter ─────────────────────────────────
|
# ── Parameter ─────────────────────────────────
|
||||||
# Ohne Angabe: letzte Stelle automatisch hochzaehlen. Mit Angabe: genau diese.
|
# Ohne Angabe: letzte Stelle automatisch hochzaehlen. Mit Angabe: genau diese.
|
||||||
|
|
||||||
# Naechste Version: hoechste aus Datei-Version und letztem Git-Tag, letzte
|
# Naechste Version: hoechste aus Datei-Version und letztem Git-Tag, dann wie
|
||||||
# Stelle +1 (0.2.6.1 → 0.2.6.2). Aufruf: next_version <aktuelle> <tag-prefix>
|
# ein Kilometerzaehler +1: hintere Stellen laufen 0..9 und uebertragen nach
|
||||||
|
# vorne (0.2.6.9 → 0.2.7.0, 0.2.9.9 → 0.3.0.0), die vorderste zaehlt einfach
|
||||||
|
# weiter (9.9.9.9 → 10.0.0.0). Aufruf: next_version <aktuelle> <tag-prefix>
|
||||||
next_version() {
|
next_version() {
|
||||||
local cur="$1" prefix="$2" tagv best
|
local cur="$1" prefix="$2" tagv best
|
||||||
tagv=$(git tag -l "${prefix}*" | sed "s/^${prefix}//" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
tagv=$(git tag -l "${prefix}*" | sed "s/^${prefix}//" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||||
best=$(printf '%s\n%s\n' "$cur" "$tagv" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
best=$(printf '%s\n%s\n' "$cur" "$tagv" | grep -E '^[0-9]+(\.[0-9]+)+$' | sort -V | tail -1)
|
||||||
[ -z "$best" ] && best="0.0.0.0"
|
[ -z "$best" ] && best="0.0.0.0"
|
||||||
awk -F. -v OFS=. '{ $NF = $NF + 1; print }' <<< "$best"
|
awk -F. -v OFS=. '{
|
||||||
|
for (i = NF; i >= 1; i--) {
|
||||||
|
if (i == 1 || $i < 9) { $i = $i + 1; break }
|
||||||
|
$i = 0 # 9 → 0, Uebertrag nach vorne
|
||||||
|
}
|
||||||
|
print
|
||||||
|
}' <<< "$best"
|
||||||
}
|
}
|
||||||
|
|
||||||
CURRENT=$(grep -m1 '"version"' android/package.json | sed -E 's/.*"version": *"([^"]*)".*/\1/')
|
CURRENT=$(grep -m1 '"version"' android/package.json | sed -E 's/.*"version": *"([^"]*)".*/\1/')
|
||||||
|
|||||||
Reference in New Issue
Block a user