#!/usr/bin/env bash # Fragt nach der Version, baut Windows (Setup + Portable, per wine) und Arch/CachyOS (pacman + AppImage) # und lädt alles als Release v nach Gitea hoch. # Token: Umgebungsvariable GITEA_TOKEN oder Datei .gitea-token im Projektordner (nicht eingecheckt). set -euo pipefail cd "$(dirname "$0")/.." unset ELECTRON_RUN_AS_NODE if [[ -z "${GITEA_TOKEN:-}" && -f .gitea-token ]]; then GITEA_TOKEN="$(tr -d '[:space:]' < .gitea-token)"; fi if [[ -z "${GITEA_TOKEN:-}" ]]; then read -rsp "Gitea-Token: " GITEA_TOKEN; echo; fi export GITEA_TOKEN current="$(node -p "require('./package.json').version")" read -rp "Release-Version [${current}]: " version version="${version:-$current}" version="${version#v}" [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.]+)?$ ]] || { echo "Ungültige Version: $version"; exit 1; } read -rp "Release-Notizen: " notes prerelease=() [[ "$version" == *-* ]] && prerelease=(--prerelease) if [[ "$version" != "$current" ]]; then npm version "$version" --no-git-tag-version >/dev/null git add package.json package-lock.json git commit -m "Version ${version}" fi # Push mit dem Gitea-Token (Basic-Auth, Benutzer aus GITEA_USER, Standard MrBlake) auth="$(printf '%s:%s' "${GITEA_USER:-MrBlake}" "$GITEA_TOKEN" | base64 -w0)" git -c http.extraHeader="Authorization: Basic ${auth}" push origin HEAD rm -rf dist npm run dist:linux npm run dist:win npm run release -- --notes "$notes" "${prerelease[@]}"