chore 📦: Add setup scripts for /usr/local/bin and APT post-invoke hook
Some checks failed
ansible-lint / Ansible Lint (push) Failing after 6s
ai-reviews / Review PR (pull_request) Successful in 28s
ansible-lint / Ansible Lint (pull_request) Failing after 6s
Gitleaks Scan / gitleaks (push) Successful in 5s
Gitleaks Scan / gitleaks (pull_request) Successful in 4s
Markdown Lint / markdown-lint (pull_request) Successful in 5s
Markdown Lint / markdown-lint (push) Successful in 5s
Some checks failed
ansible-lint / Ansible Lint (push) Failing after 6s
ai-reviews / Review PR (pull_request) Successful in 28s
ansible-lint / Ansible Lint (pull_request) Failing after 6s
Gitleaks Scan / gitleaks (push) Successful in 5s
Gitleaks Scan / gitleaks (pull_request) Successful in 4s
Markdown Lint / markdown-lint (pull_request) Successful in 5s
Markdown Lint / markdown-lint (push) Successful in 5s
This commit includes the installation of `pve-remove-nag.sh` script, checks for legacy `proxmoxlib.js`, and ensures that `/usr/local/bin` exists. Additionally, it sets up an APT post-invoke hook to run necessary tasks after package installations.
This commit is contained in:
@@ -1,12 +1,81 @@
|
|||||||
---
|
---
|
||||||
- name: subscription | Ensure nag patch state directory exists
|
- name: Ensure /usr/local/bin exists
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /var/lib/proxmox-nag-patch
|
path: /usr/local/bin
|
||||||
state: directory
|
state: directory
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0755"
|
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
|
# Legacy proxmoxlib.js
|
||||||
############################
|
############################
|
||||||
@@ -14,16 +83,8 @@
|
|||||||
- name: subscription | Check for legacy proxmoxlib.js
|
- name: subscription | Check for legacy proxmoxlib.js
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
path: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
||||||
checksum_algorithm: sha256
|
|
||||||
register: proxmoxlib_js
|
register: proxmoxlib_js
|
||||||
|
|
||||||
- name: subscription | Read stored checksum (legacy)
|
|
||||||
ansible.builtin.slurp:
|
|
||||||
src: /var/lib/proxmox-nag-patch/proxmoxlib.js.sha256
|
|
||||||
register: proxmoxlib_js_checksum_stored
|
|
||||||
when: proxmoxlib_js.stat.exists
|
|
||||||
failed_when: false
|
|
||||||
|
|
||||||
- name: subscription | Trigger legacy nag patch if needed
|
- name: subscription | Trigger legacy nag patch if needed
|
||||||
ansible.builtin.meta: flush_handlers
|
ansible.builtin.meta: flush_handlers
|
||||||
when:
|
when:
|
||||||
@@ -33,28 +94,3 @@
|
|||||||
!= (proxmoxlib_js_checksum_stored.content | b64decode | trim)
|
!= (proxmoxlib_js_checksum_stored.content | b64decode | trim)
|
||||||
notify: Ppatch legacy proxmoxlib.js
|
notify: Ppatch legacy proxmoxlib.js
|
||||||
|
|
||||||
############################
|
|
||||||
# Minified proxmoxlib.min.js (VE 8/9)
|
|
||||||
############################
|
|
||||||
|
|
||||||
- name: subscription | Check for minified proxmoxlib.min.js (VE 8/9)
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.min.js
|
|
||||||
checksum_algorithm: sha256
|
|
||||||
register: proxmoxlib_min_js
|
|
||||||
|
|
||||||
- name: subscription | Read stored checksum (minified)
|
|
||||||
ansible.builtin.slurp:
|
|
||||||
src: /var/lib/proxmox-nag-patch/proxmoxlib.min.js.sha256
|
|
||||||
register: proxmoxlib_min_checksum_stored
|
|
||||||
when: proxmoxlib_min_js.stat.exists
|
|
||||||
failed_when: false
|
|
||||||
|
|
||||||
- name: subscription | Trigger minified nag patch if needed
|
|
||||||
ansible.builtin.meta: flush_handlers
|
|
||||||
when:
|
|
||||||
- proxmoxlib_min_js.stat.exists
|
|
||||||
- proxmoxlib_min_checksum_stored.content is not defined
|
|
||||||
or proxmoxlib_min_js.stat.checksum
|
|
||||||
!= (proxmoxlib_min_checksum_stored.content | b64decode | trim)
|
|
||||||
notify: Patch minified proxmoxlib.js
|
|
||||||
|
|||||||
Reference in New Issue
Block a user