#!/bin/sh
set -e
[ "$(id -u)" -eq 0 ] || { echo "error: run as root" >&2; exit 1; }

if command -v apk >/dev/null 2>&1; then
    echo "==> Detected Alpine Linux"
    wget -q -O /etc/apk/keys/calagopus.rsa.pub \
        https://packages.calagopus.com/apk/calagopus.rsa.pub
    grep -qF "packages.calagopus.com/apk" /etc/apk/repositories 2>/dev/null \
        || echo "https://packages.calagopus.com/apk" >> /etc/apk/repositories
    apk update -q
    echo "Done. Run: apk add <package>"

elif command -v apt-get >/dev/null 2>&1; then
    echo "==> Detected Debian-based distro"
    curl -fsSL https://packages.calagopus.com/pub.gpg \
        -o /usr/share/keyrings/calagopus-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/calagopus-archive-keyring.gpg] https://packages.calagopus.com/deb stable main" \
        > /etc/apt/sources.list.d/calagopus.list
    apt-get update -q
    echo "Done. Run: apt install <package>"

elif command -v dnf >/dev/null 2>&1 || command -v yum >/dev/null 2>&1; then
    echo "==> Detected RPM-based distro"
    rpm --import https://packages.calagopus.com/pubring.gpg
    curl -fsSL https://packages.calagopus.com/calagopus.repo \
        -o /etc/yum.repos.d/calagopus.repo
    if command -v dnf >/dev/null 2>&1; then
        dnf makecache -q
    elif command -v yum >/dev/null 2>&1; then
        yum makecache -q
    fi
    echo "Done. Run: dnf install <package>"

else
    echo "error: no supported package manager found (apk, apt-get, dnf, yum)" >&2
    echo "Install manually: https://calagopus.com/docs" >&2
    exit 1
fi
