Some checks failed
ansible-lint / Ansible Lint (push) Failing after 6s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 4s
ai-reviews / Review PR (pull_request) Successful in 10s
ansible-lint / Ansible Lint (pull_request) Failing after 6s
Gitleaks Scan / gitleaks (pull_request) Successful in 4s
Markdown Lint / markdown-lint (pull_request) Successful in 5s
Removed unnecessary comments from the codebase and updated references to the latest commit. This refactoring improves readability and ensures consistency with the current version control.
97 lines
3.7 KiB
YAML
97 lines
3.7 KiB
YAML
---
|
|
- name: Ensure /usr/local/bin exists
|
|
ansible.builtin.file:
|
|
path: /usr/local/bin
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: subscription | Check for legacy proxmoxlib.js
|
|
ansible.builtin.stat:
|
|
path: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
|
register: proxmoxlib_js
|
|
|
|
- name: Install pve-remove-nag script
|
|
ansible.builtin.copy:
|
|
dest: /usr/local/bin/pve-remove-nag.sh
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
content: |
|
|
#!/bin/sh
|
|
# source: https://github.com/community-scripts/ProxmoxVE/blob/main/tools/pve/post-pve-install.sh
|
|
# Commit c464b95
|
|
WEB_JS=/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
|
if [ -s "$WEB_JS" ] && ! grep -q NoMoreNagging "$WEB_JS"; then
|
|
echo "Patching Web UI nag..."
|
|
sed -i -e "/data\.status/ s/!//" -e "/data\.status/ s/active/NoMoreNagging/" "$WEB_JS"
|
|
fi
|
|
|
|
MOBILE_TPL=/usr/share/pve-yew-mobile-gui/index.html.tpl
|
|
MARKER="<!-- MANAGED BLOCK FOR MOBILE NAG -->"
|
|
if [ -f "$MOBILE_TPL" ] && ! grep -q "$MARKER" "$MOBILE_TPL"; then
|
|
echo "Patching Mobile UI nag..."
|
|
printf "%s\n" \
|
|
"$MARKER" \
|
|
"<script>" \
|
|
" function removeSubscriptionElements() {" \
|
|
" // --- Remove subscription dialogs ---" \
|
|
" const dialogs = document.querySelectorAll('dialog.pwt-outer-dialog');" \
|
|
" dialogs.forEach(dialog => {" \
|
|
" const text = (dialog.textContent || '').toLowerCase();" \
|
|
" if (text.includes('subscription')) {" \
|
|
" dialog.remove();" \
|
|
" console.log('Removed subscription dialog');" \
|
|
" }" \
|
|
" });" \
|
|
"" \
|
|
" // --- Remove subscription cards, but keep Reboot/Shutdown/Console ---" \
|
|
" const cards = document.querySelectorAll('.pwt-card.pwt-p-2.pwt-d-flex.pwt-interactive.pwt-justify-content-center');" \
|
|
" cards.forEach(card => {" \
|
|
" const text = (card.textContent || '').toLowerCase();" \
|
|
" const hasButton = card.querySelector('button');" \
|
|
" if (!hasButton && text.includes('subscription')) {" \
|
|
" card.remove();" \
|
|
" console.log('Removed subscription card');" \
|
|
" }" \
|
|
" });" \
|
|
" }" \
|
|
"" \
|
|
" const observer = new MutationObserver(removeSubscriptionElements);" \
|
|
" observer.observe(document.body, { childList: true, subtree: true });" \
|
|
" removeSubscriptionElements();" \
|
|
" setInterval(removeSubscriptionElements, 300);" \
|
|
" setTimeout(() => {observer.disconnect();}, 10000);" \
|
|
"</script>" \
|
|
"" >> "$MOBILE_TPL"
|
|
fi
|
|
when: proxmoxlib_js.stat.exists
|
|
|
|
- name: Install APT post-invoke hook for nag removal
|
|
ansible.builtin.copy:
|
|
dest: /etc/apt/apt.conf.d/no-nag-script
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
DPkg::Post-Invoke { "/usr/local/bin/pve-remove-nag.sh"; };
|
|
|
|
############################
|
|
# Legacy proxmoxlib.js
|
|
############################
|
|
|
|
- name: subscription | Check for legacy proxmoxlib.js
|
|
ansible.builtin.stat:
|
|
path: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
|
register: proxmoxlib_js
|
|
|
|
- name: subscription | Trigger legacy nag patch if needed
|
|
ansible.builtin.meta: flush_handlers
|
|
when:
|
|
- proxmoxlib_js.stat.exists
|
|
- proxmoxlib_js_checksum_stored.content is not defined
|
|
or proxmoxlib_js.stat.checksum
|
|
!= (proxmoxlib_js_checksum_stored.content | b64decode | trim)
|
|
notify: Ppatch legacy proxmoxlib.js
|