#!/usr/bin/env bash set -e GREP_VARIANT=$(grep -V) function parse_grep_version_to_know_if_it_is_bsd_or_gnu { read -r first_line <<< "$GREP_VARIANT" if [[ "$first_line" == *"GNU"* ]]; then echo "GNU" else echo "BSD" fi } GREP_VARIANT=$(parse_grep_version_to_know_if_it_is_bsd_or_gnu) REPO="jelius-sama/convert_cbz" VERSION="" # Fetch latest release tag from GitHub API if [ "$GREP_VARIANT" = "GNU" ]; then VERSION="$( curl -s "https://api.github.com/repos/${REPO}/releases/latest" \ | grep -oP '"tag_name":\s*"\K[^"]+' )" else # BSD/macOS grep does not support -P (Perl regex). # Use -E (Extended regex) and sed instead. VERSION="$( curl -s "https://api.github.com/repos/${REPO}/releases/latest" \ | grep -Eo '"tag_name":\s*"[^"]+"' \ | sed -E 's/"tag_name":\s*"([^"]+)"/\1/' )" fi BASE_URL="https://github.com/${REPO}/releases/download/${VERSION}" OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case $ARCH in x86_64|amd64) ARCH=amd64 ;; aarch64|arm64) ARCH=arm64 ;; armv7*|armv6*) ARCH=arm ;; ppc64le) ARCH=ppc64le ;; ppc64) ARCH=ppc64 ;; mips64) ARCH=mips64 ;; mips64le) ARCH=mips64le ;; mips) ARCH=mips ;; s390x) ARCH=s390x ;; i386|i686) ARCH=386 ;; *) echo "[ERROR] Unsupported architecture: $ARCH"; exit 1 ;; esac BINARY="convert-cbz-${OS}-${ARCH}" TEMP_BIN="/tmp/convert-cbz" echo "[INFO] Detected OS: $OS, Arch: $ARCH" echo "[INFO] Downloading $BINARY from $BASE_URL" curl -L -o "$TEMP_BIN" "${BASE_URL}/${BINARY}" chmod +x "$TEMP_BIN" echo "[OK] Download complete." echo "[INFO] Installing to /usr/local/bin/convert-cbz" sudo mv "$TEMP_BIN" /usr/local/bin/convert-cbz echo "[OK] Installation complete!" echo "Run 'convert-cbz -help' to get started."