From 724a37bbf49bdc186a352d3b28094dacce5a23f3 Mon Sep 17 00:00:00 2001 From: MacRimi <123239993+MacRimi@users.noreply.github.com> Date: Sun, 20 Jul 2025 01:51:14 +0200 Subject: [PATCH] Update auto_post_install.sh --- scripts/post_install/auto_post_install.sh | 106 +++++++++++++++++----- 1 file changed, 81 insertions(+), 25 deletions(-) diff --git a/scripts/post_install/auto_post_install.sh b/scripts/post_install/auto_post_install.sh index e59ec59..193069b 100644 --- a/scripts/post_install/auto_post_install.sh +++ b/scripts/post_install/auto_post_install.sh @@ -319,32 +319,8 @@ apt_upgrade() { } # ========================================================== + remove_subscription_banner_() { - msg_info "$(translate "Removing Proxmox subscription nag banner...")" - local JS_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js" - local GZ_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz" - local APT_HOOK="/etc/apt/apt.conf.d/no-nag-script" - - if [[ ! -f "$APT_HOOK" ]]; then - cat <<'EOF' > "$APT_HOOK" -DPkg::Post-Invoke { "dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ $? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/.*data\.status.*{/{s/\!//;s/active/NoMoreNagging/;s/Active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; rm -f /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz; }; fi"; }; -EOF - fi - - if [[ -f "$JS_FILE" ]]; then - sed -i '/.*data\.status.*{/{s/\!//;s/active/NoMoreNagging/;s/Active/NoMoreNagging/}' "$JS_FILE" - [[ -f "$GZ_FILE" ]] && rm -f "$GZ_FILE" - touch "$JS_FILE" - fi - - apt --reinstall install proxmox-widget-toolkit -y > /dev/null 2>&1 - - msg_ok "$(translate "Subscription nag banner removed successfully")" - register_tool "subscription_banner" true -} - - -remove_subscription_banner() { local JS_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js" local GZ_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz" local APT_HOOK="/etc/apt/apt.conf.d/no-nag-script" @@ -382,6 +358,86 @@ EOF register_tool "subscription_banner" true } + + +remove_subscription_banner() { + local JS_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js" + local GZ_FILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz" + local APT_HOOK="/etc/apt/apt.conf.d/no-nag-script" + local BACKUP_FILE="${JS_FILE}.bak.$(date +%Y-%m-%d_%H:%M:%S)" + + local PVE_VERSION=$(pveversion | grep "pve-manager" | cut -d'/' -f2) + + if ! whiptail --title "Proxmox Subscription Banner" \ + --yesno "Do you want to remove the Proxmox subscription banner from the web interface?" 10 60; then + msg_warn "Banner removal cancelled by user." + return 1 + fi + + for f in /etc/apt/apt.conf.d/*nag*; do + [[ -e "$f" ]] && rm -f "$f" + done + + msg_info "Applying patches to remove subscription banner..." + + if [[ $(echo "$PVE_VERSION" | cut -d'.' -f1-2) == "8.4" ]] && [[ $(echo "$PVE_VERSION" | cut -d'.' -f3) -ge 5 ]]; then + + sed -i "s/res\.data\.status\.toLowerCase() !== 'NoMoreNagging'/false/g" "$JS_FILE" + sed -i "s/res\.data\.status\.toLowerCase() !== \"NoMoreNagging\"/false/g" "$JS_FILE" + sed -i '/check_subscription: function/,/},$/c\ + check_subscription: function () {\ + let me = this;\ + let vm = me.getViewModel();\ + vm.set("subscriptionActive", true);\ + me.getController().updateState();\ + },' "$JS_FILE" + else + + sed -i "s/res\.data\.status\.toLowerCase()[^']*'active'/false/g" "$JS_FILE" + sed -i "s/res\.data\.status[^']*'Active'/false/g" "$JS_FILE" + fi + + sed -i '/checked_command: function/,/},$/c\ + checked_command: function (orig_cmd) {\ + orig_cmd();\ + },' "$JS_FILE" + + sed -i "s/title: gettext('No valid subscription')/title: gettext('Subscription Active')/g" "$JS_FILE" + sed -i "s/icon: Ext\.Msg\.WARNING/icon: Ext.Msg.INFO/g" "$JS_FILE" + + [[ -f "$GZ_FILE" ]] && rm -f "$GZ_FILE" + + find /var/cache/pve-manager/ -name "*.js*" -delete 2>/dev/null || true + find /var/lib/pve-manager/ -name "*.js*" -delete 2>/dev/null || true + + if [[ $(echo "$PVE_VERSION" | cut -d'.' -f1-2) == "8.4" ]] && [[ $(echo "$PVE_VERSION" | cut -d'.' -f3) -ge 5 ]]; then + + cat > "$APT_HOOK" << 'EOF' +DPkg::Post-Invoke { + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && sed -i 's/res\.data\.status\.toLowerCase() !== '\''NoMoreNagging'\''/false/g' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"; + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && sed -i 's/res\.data\.status\.toLowerCase() !== \"NoMoreNagging\"/false/g' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"; + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz && rm -f /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz"; +}; +EOF + else + + cat > "$APT_HOOK" << 'EOF' +DPkg::Post-Invoke { + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && sed -i 's/res\.data\.status\.toLowerCase()[^'\'']*'\''active'\''/false/g' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"; + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && sed -i 's/res\.data\.status[^'\'']*'\''Active'\''/false/g' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"; + "test -e /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz && rm -f /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.gz"; +}; +EOF + fi + + chmod 644 "$APT_HOOK" + + apt --reinstall install proxmox-widget-toolkit -y > /dev/null 2>&1 + msg_ok "Subscription banner patches applied successfully for Proxmox $PVE_VERSION. Clear your browser cache." + register_tool "subscription_banner" true +} + + # ==========================================================