#!/bin/bash set -e echo "--- Detecting OS ---" # Source os-release if [[ -r /etc/os-release ]]; then . /etc/os-release else echo "Cannot determine OS (missing /etc/os-release)" >&2 exit 1 fi # Major version only OSVER="${VERSION_ID%%.*}" ARCH="$(uname -m)" REPO_BASE_URL="https://repo.spictera.se/rpm" GPG_KEY_URL="${REPO_BASE_URL}/RPM-GPG-KEY-spictera" REPO_URL="${REPO_BASE_URL}/${ID}/${OSVER}/${ARCH}" if [ "$(id -u)" != "0" ] then echo "This script must be run as root." >&2 exit 1 fi echo "Detecting distribution..." if command -v zypper >/dev/null then DISTRO="suse" REPO_FILE="/etc/zypp/repos.d/spictera.repo" MANAGER="zypper" elif command -v dnf >/dev/null then DISTRO="rhel" REPO_FILE="/etc/yum.repos.d/spictera.repo" MANAGER="dnf" elif command -v yum >/dev/null then DISTRO="rhel" REPO_FILE="/etc/yum.repos.d/spictera.repo" MANAGER="yum" else echo "Unsupported distribution (dnf, yum, or zypper required)." exit 1 fi echo "Detected: $DISTRO" echo "--- Creating Spictera repository file ---" if [ "$DISTRO" = "suse" ] then cat <<-EOF > "$REPO_FILE" [spictera-rpm] name=Spictera RPM Repository enabled=1 autorefresh=1 baseurl=$REPO_URL type=rpm-md gpgcheck=1 gpgkey=$GPG_KEY_URL EOF else cat <<-EOF > "$REPO_FILE" [spictera-rpm] name=Spictera RPM Repository baseurl=$REPO_URL enabled=1 gpgcheck=1 gpgkey=$GPG_KEY_URL EOF fi echo "Repository installed at $REPO_FILE" echo "--- Refreshing metadata ---" if [ "$DISTRO" = "suse" ] then zypper --gpg-auto-import-keys refresh else $MANAGER clean all $MANAGER makecache fi echo "✔ Spictera repository configured successfully" echo "You can now install packages:" echo echo " RHEL / Alma / Rocky:" echo " dnf install spfs" echo echo " SUSE:" echo " zypper install spfs"