refactor: complete addon harmonization (filebrowser-quantum, glances, olivetin, phpmyadmin, coder-code-server polish)

- Remove local get_lxc_ip() shadow in glances.sh, use core.func version
- Fix double header_info() call in olivetin.sh with _HEADER_SHOWN reset
- Add core.func/tools.func/error_handler.func sourcing to phpmyadmin.sh
- Replace unsafe hostname -I fallback with get_lxc_ip everywhere
- Use $STD for command execution and shared msg_info/msg_ok/msg_error/msg_warn
- All files verified clean via shellcheck (only expected SC1090 noise)
This commit is contained in:
MickLesk
2026-08-01 22:06:30 +02:00
parent 5356ce7dcc
commit 92b7155ff9
6 changed files with 154 additions and 249 deletions
+27 -50
View File
@@ -5,55 +5,33 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nicolargo.github.io/glances/ | Github: https://github.com/nicolargo/glances
function header_info {
clear
cat <<"EOF"
________
/ ____/ /___ _____ ________ _____
/ / __/ / __ `/ __ \/ ___/ _ \/ ___/
/ /_/ / / /_/ / / / / /__/ __(__ )
\____/_/\__,_/_/ /_/\___/\___/____/
EOF
}
APP="Glances"
YW=$(echo "\033[33m")
GN=$(echo "\033[1;92m")
RD=$(echo "\033[01;31m")
BL=$(echo "\033[36m")
CL=$(echo "\033[m")
CM="${GN}✔️${CL}"
CROSS="${RD}✖️${CL}"
INFO="${BL}ℹ️${CL}"
APP_TYPE="addon"
function msg_info() { echo -e "${INFO} ${YW}$1...${CL}"; }
function msg_ok() { echo -e "${CM} ${GN}$1${CL}"; }
function msg_error() { echo -e "${CROSS} ${RD}$1${CL}"; }
# Telemetry
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func) 2>/dev/null || true
declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "glances" "addon"
get_lxc_ip() {
if command -v hostname >/dev/null 2>&1 && hostname -I 2>/dev/null; then
hostname -I | awk '{print $1}'
elif command -v ip >/dev/null 2>&1; then
ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n1
else
echo "127.0.0.1"
fi
}
IP=$(get_lxc_ip)
# Enable error handling
set -Eeuo pipefail
trap 'error_handler' ERR
# Initialize all core functions (colors, formatting, icons, STD mode)
load_functions
header_info
get_lxc_ip
IP="$LOCAL_IP"
install_glances_debian() {
msg_info "Installing dependencies"
apt-get update >/dev/null 2>&1
apt-get install -y gcc lm-sensors wireless-tools curl >/dev/null 2>&1
$STD apt-get update
$STD apt-get install -y gcc lm-sensors wireless-tools curl
msg_ok "Installed dependencies"
msg_info "Setting up Python + uv"
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
setup_uv PYTHON_VERSION="3.12"
msg_ok "Setup Python + uv"
@@ -61,10 +39,10 @@ install_glances_debian() {
cd /opt
mkdir -p glances
cd glances
uv venv --clear
$STD uv venv --clear
source .venv/bin/activate >/dev/null 2>&1
uv pip install --upgrade pip wheel setuptools >/dev/null 2>&1
uv pip install "glances[web]" >/dev/null 2>&1
$STD uv pip install --upgrade pip wheel setuptools
$STD uv pip install "glances[web]"
deactivate
msg_ok "Installed $APP"
@@ -86,7 +64,7 @@ EOF
systemctl enable -q --now glances
msg_ok "Created systemd service"
echo -e "\n$APP is now running at: http://$IP:61208\n"
msg_ok "$APP is now running at: http://${IP}:61208"
}
# update on Debian/Ubuntu
@@ -98,7 +76,7 @@ update_glances_debian() {
msg_info "Updating $APP"
cd /opt/glances
source .venv/bin/activate
uv pip install --upgrade "glances[web]" >/dev/null 2>&1
$STD uv pip install --upgrade "glances[web]"
deactivate
systemctl restart glances
msg_ok "Updated successfully!"
@@ -116,14 +94,13 @@ uninstall_glances_debian() {
# install on Alpine
install_glances_alpine() {
msg_info "Installing dependencies"
apk update >/dev/null 2>&1
$STD apk update
$STD apk add --no-cache \
gcc musl-dev linux-headers python3-dev \
python3 py3-pip py3-virtualenv lm-sensors wireless-tools curl >/dev/null 2>&1
python3 py3-pip py3-virtualenv lm-sensors wireless-tools curl
msg_ok "Installed dependencies"
msg_info "Setting up Python + uv"
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
setup_uv PYTHON_VERSION="3.12"
msg_ok "Setup Python + uv"
@@ -131,10 +108,10 @@ install_glances_alpine() {
cd /opt
mkdir -p glances
cd glances
uv venv --clear
$STD uv venv --clear
source .venv/bin/activate
uv pip install --upgrade pip wheel setuptools >/dev/null 2>&1
uv pip install "glances[web]" >/dev/null 2>&1
$STD uv pip install --upgrade pip wheel setuptools
$STD uv pip install "glances[web]"
deactivate
msg_ok "Installed $APP"
@@ -165,7 +142,7 @@ update_glances_alpine() {
msg_info "Updating $APP"
cd /opt/glances
source .venv/bin/activate
uv pip install --upgrade "glances[web]" >/dev/null 2>&1
$STD uv pip install --upgrade "glances[web]"
deactivate
rc-service glances restart
msg_ok "Updated successfully!"