#!/bin/sh
set -u
PATH=/usr/sbin:/usr/bin:/sbin:/bin
export PATH

pkg=${1:-}
case $pkg in
    /*.deb | /*.rpm) ;;
    *) echo "anke-update: нужен полный путь к .deb или .rpm" >&2; exit 2 ;;
esac
[ -f "$pkg" ] || { echo "anke-update: нет файла $pkg" >&2; exit 2; }

tmp=$(mktemp -d /tmp/anke-update.XXXXXX) || exit 2
trap 'rm -rf "$tmp"' EXIT INT TERM
chmod 0755 "$tmp"

case $pkg in
*.deb)
    f="$tmp/anke-connect.deb"
    cp "$pkg" "$f" && chmod 0644 "$f" || exit 2
    name=$(dpkg-deb -f "$f" Package 2>/dev/null)
    [ "$name" = anke-connect ] || { echo "anke-update: это не пакет anke-connect ($name)" >&2; exit 3; }
    export DEBIAN_FRONTEND=noninteractive
    if command -v apt-get >/dev/null 2>&1; then
        apt-get install -y --no-install-recommends "$f"
    else
        dpkg -i "$f"
    fi
    ;;
*.rpm)
    f="$tmp/anke-connect.rpm"
    cp "$pkg" "$f" && chmod 0644 "$f" || exit 2
    name=$(rpm -qp --qf '%{NAME}' "$f" 2>/dev/null)
    [ "$name" = anke-connect ] || { echo "anke-update: это не пакет anke-connect ($name)" >&2; exit 3; }
    if [ -f /etc/altlinux-release ] && command -v apt-get >/dev/null 2>&1; then
        apt-get install -y "$f"
    elif command -v dnf >/dev/null 2>&1; then
        dnf install -y "$f"
    elif command -v zypper >/dev/null 2>&1; then
        zypper --non-interactive install --allow-unsigned-rpm "$f"
    elif command -v yum >/dev/null 2>&1; then
        yum install -y "$f"
    else
        rpm -U --replacepkgs "$f"
    fi
    ;;
esac
