aboutsummaryrefslogtreecommitdiffstats
path: root/hyperterm/core/autodep.sh
blob: a106c82def424b5cabadb764daf57d4179a6a777 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash

function install_package() {
    local pkg="$1"

    if command -v "$pkg" &>/dev/null; then
        return 0
    fi

    msg "El paquete $pkg no se encontró. Procediendo a instalar..." \
        "$pkg not found. Attempting to install..."

    local INSTALLER=""
    local SUDO=""
    local USER_CMD=$(command -v sudo || command -v doas)

    [[ "$(id -u)" -ne 0 ]] && SUDO="$USER_CMD"

    local OS_ID=""
    if [ -f /etc/os-release ]; then
        OS_ID=$(grep "^ID=" /etc/os-release | head -n1 | cut -d= -f2 | tr -d '"')
        OS_ID=${OS_ID,,}
    fi

    case "$OS_ID" in
        arch|manjaro|artix|hyperbola)
            INSTALLER="pacman -Sy --noconfirm $pkg"
            ;;
        debian|ubuntu|linuxmint|elementary|pop)
            INSTALLER="apt-get update && apt-get install -y $pkg"
            ;;
        fedora)
            INSTALLER="dnf install -y $pkg"
            ;;
        void)
            INSTALLER="xbps-install -Sy $pkg"
            ;;
        gentoo)
            INSTALLER="emerge app-arch/$pkg"
            ;;
        alpine)
            INSTALLER="apk add $pkg"
            ;;
        *)
            msg_err "Distro no compatible con la instalación automática de $pkg." \
                    "Unsupported distro for automatic $pkg installation."
            return 1
            ;;
    esac

    msg "Ejecutando instalación con: $SUDO $INSTALLER" \
        "Running install command: $SUDO $INSTALLER"

    $SUDO bash -c "$INSTALLER"

    if command -v "$pkg" &>/dev/null; then
        return 0
    else
        msg_err "Falló al instalar: $pkg" \
                "Failed to install $pkg."
        return 1
    fi
}