Files
ProxmoxVE/ct/plex.sh
CanbiZ (MickLesk) 9a36f5df08 feat(unattended): handle whiptail menus and disabled scripts in silent mode
Add phs_whiptail() wrapper function to build.func that transparently
handles whiptail dialogs in unattended/silent mode (PHS_SILENT=1):
- radiolist: auto-selects the ON (default) option
- menu: auto-selects the first option (typically 'Update')
- yesno: auto-confirms (returns 0)
- msgbox: auto-acknowledges (returns 0)
- passwordbox/inputbox: signals skip (returns 1)

Replace all whiptail calls in update_script() functions across 19
ct scripts with phs_whiptail for unattended compatibility.

Affected scripts:
- alpine-docker, alpine-grafana, alpine-loki, alpine-nextcloud
- alpine-redis, alpine-valkey, alpine-vaultwarden, alpine-zigbee2mqtt
- alpine, cronicle, gitea-mirror, homeassistant
- loki, meilisearch, node-red, npmplus
- plex, podman-homeassistant, vaultwarden

Also improve update-apps.sh batch updater:
- Exit code 75 (EX_TEMPFAIL) = disabled/skipped, not a failure
- In unattended mode, failed containers are skipped instead of
  aborting the entire update loop
- Update nginxproxymanager.sh to use exit 75 for disabled state

Closes #11620
2026-02-09 08:58:33 +01:00

60 lines
1.8 KiB
Bash

#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.plex.tv/
APP="Plex"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}"
var_gpu="${var_gpu:-yes}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/apt/sources.list.d/plexmediaserver.list ]] &&
[[ ! -f /etc/apt/sources.list.d/plexmediaserver.sources ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select \nplexupdate info >> https://github.com/mrworf/plexupdate" 10 59 2 \
"1" "Update LXC" ON \
"2" "Install plexupdate" OFF \
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated ${APP} LXC"
msg_ok "Updated successfully!"
exit
fi
if [ "$UPD" == "2" ]; then
set +e
bash -c "$(curl -fsSL https://raw.githubusercontent.com/mrworf/plexupdate/master/extras/installer.sh)"
msg_ok "Updated successfully!"
exit
fi
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:32400/web${CL}"