refactor(scripts): standardize scripts and improve readability
All checks were successful
Auto Changelog & Release / release (push) Successful in 6s
All checks were successful
Auto Changelog & Release / release (push) Successful in 6s
- Removed unnecessary comments and adjusted formatting for clarity - Translated German comments, logs, and error messages to English - Improved consistency in variable naming and messages across scripts - Enhanced error handling and output for better user feedback
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# install-git-cliff.sh – holt neueste oder gewünschte git-cliff-Binary (x86_64)
|
||||
# Usage: sudo ./install-git-cliff.sh # neueste Version
|
||||
# sudo ./install-git-cliff.sh 2.9.0 # bestimmte Version
|
||||
# install-git-cliff.sh – fetches the latest or specified git-cliff binary (x86_64)
|
||||
# Usage: sudo ./install-git-cliff.sh # latest version
|
||||
# sudo ./install-git-cliff.sh 2.9.0 # specific version
|
||||
set -euo pipefail
|
||||
|
||||
REPO="orhun/git-cliff"
|
||||
@@ -9,42 +9,42 @@ ARCH_OS="x86_64-unknown-linux-gnu"
|
||||
INSTALL_DIR="/usr/local/bin"
|
||||
VERSION="${1:-latest}"
|
||||
|
||||
need() { command -v "$1" >/dev/null || { echo "$1 fehlt"; exit 1; }; }
|
||||
need() { command -v "$1" >/dev/null || { echo "$1 is missing"; exit 1; }; }
|
||||
need curl; need tar; need grep; need sed; need awk
|
||||
|
||||
# 1 Version ermitteln → Release-JSON abrufen
|
||||
# 1 Determine version → Fetch release JSON
|
||||
if [[ "$VERSION" == "latest" ]]; then
|
||||
API_URL="https://api.github.com/repos/${REPO}/releases/latest"
|
||||
else
|
||||
API_URL="https://api.github.com/repos/${REPO}/releases/tags/v${VERSION}"
|
||||
fi
|
||||
|
||||
echo "🔍 Hole Release-Info ($API_URL)…"
|
||||
echo "🔍 Fetching release info ($API_URL)…"
|
||||
JSON=$(curl -sL "$API_URL")
|
||||
|
||||
VERSION=$(echo "$JSON" | grep -m1 '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
|
||||
VERSION=$(echo "$JSON" | grep -m1 '"tag_name":' | sed -E 's/.*"v?([^\"]+)".*/\1/')
|
||||
ASSET_URL=$(echo "$JSON" |
|
||||
grep -Eo '"browser_download_url": *"[^"]+' |
|
||||
cut -d'"' -f4 |
|
||||
grep "${ARCH_OS}\\.tar" | head -n1)
|
||||
grep "${ARCH_OS}\.tar" | head -n1)
|
||||
|
||||
[[ -z "$ASSET_URL" ]] && { echo "❌ passender Asset nicht gefunden"; exit 1; }
|
||||
[[ -z "$ASSET_URL" ]] && { echo "❌ Matching asset not found"; exit 1; }
|
||||
|
||||
ASSET_FILE=$(basename "$ASSET_URL")
|
||||
echo "📦 Lade git-cliff v${VERSION} (${ASSET_FILE}) …"
|
||||
echo "📦 Downloading git-cliff v${VERSION} (${ASSET_FILE}) …"
|
||||
TMP=$(mktemp -d)
|
||||
curl -#L -o "${TMP}/${ASSET_FILE}" "$ASSET_URL"
|
||||
|
||||
# 2 Entpacken je nach Endung
|
||||
# 2 Extract based on file extension
|
||||
case "$ASSET_FILE" in
|
||||
*.tar.gz|*.tgz) tar -C "$TMP" -xzf "${TMP}/${ASSET_FILE}" ;;
|
||||
*.tar.xz) tar -C "$TMP" -xJf "${TMP}/${ASSET_FILE}" ;;
|
||||
*.zip) need unzip; unzip -q "${TMP}/${ASSET_FILE}" -d "$TMP" ;;
|
||||
*) echo "❌ Unbekanntes Archivformat: $ASSET_FILE"; exit 1 ;;
|
||||
*) echo "❌ Unknown archive format: $ASSET_FILE"; exit 1 ;;
|
||||
esac
|
||||
|
||||
BIN_PATH=$(find "$TMP" -type f -name git-cliff -perm -u+x | head -n1)
|
||||
[[ -z "$BIN_PATH" ]] && { echo "❌ Binary nicht gefunden"; exit 1; }
|
||||
[[ -z "$BIN_PATH" ]] && { echo "❌ Binary not found"; exit 1; }
|
||||
|
||||
sudo install -m755 "$BIN_PATH" "${INSTALL_DIR}/git-cliff"
|
||||
echo "✅ git-cliff $(git-cliff --version) installiert unter ${INSTALL_DIR}"
|
||||
echo "✅ git-cliff $(git-cliff --version) installed in ${INSTALL_DIR}"
|
||||
|
Reference in New Issue
Block a user