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
}
|