mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
fix(monitor): the Changes view lists the customizable post-install under its options
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
"""The Changes view files a change under the post-install section by the name
|
||||||
|
its script records itself with. Both post-install scripts have to be known to
|
||||||
|
it, or what one of them changes is shown as the work of an unnamed script."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[3]
|
||||||
|
VIEW = (ROOT / "AppImage/components/audit-changes.tsx").read_text()
|
||||||
|
SCRIPTS = ("scripts/post_install/auto_post_install.sh", "scripts/post_install/customizable_post_install.sh")
|
||||||
|
|
||||||
|
|
||||||
|
class PostInstallSourcesTests(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
declared = re.search(r"const POST_INSTALL_SOURCES = new Set\(\[([^\]]*)\]\)", VIEW)
|
||||||
|
self.assertIsNotNone(declared)
|
||||||
|
self.known = set(re.findall(r'"([^"]+)"', declared.group(1)))
|
||||||
|
|
||||||
|
def test_every_post_install_script_is_known_by_the_name_it_records(self):
|
||||||
|
for script in SCRIPTS:
|
||||||
|
with self.subTest(script=script):
|
||||||
|
source = re.search(r'^SCRIPT_SOURCE="([^"]+)"', (ROOT / script).read_text(), re.M)
|
||||||
|
self.assertIsNotNone(source)
|
||||||
|
self.assertIn(source.group(1), self.known)
|
||||||
|
|
||||||
|
def test_no_name_is_listed_that_no_script_records(self):
|
||||||
|
recorded = {re.search(r'^SCRIPT_SOURCE="([^"]+)"', (ROOT / script).read_text(), re.M).group(1)
|
||||||
|
for script in SCRIPTS}
|
||||||
|
self.assertEqual(self.known, recorded)
|
||||||
|
|
||||||
|
def test_figurine_and_fastfetch_have_a_name_in_the_view(self):
|
||||||
|
for function in ("configure_figurine", "configure_fastfetch"):
|
||||||
|
self.assertRegex(VIEW, rf'\b{function}: "')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
@@ -84,7 +84,7 @@ function undoKey(change: { revert: string; exactness: string }): string {
|
|||||||
|
|
||||||
const FN_LABEL: Record<string, string> = {
|
const FN_LABEL: Record<string, string> = {
|
||||||
// Internal helpers of a post-install feature show its menu name, not their
|
// Internal helpers of a post-install feature show its menu name, not their
|
||||||
// raw name — and never the source ("auto"/"customizable").
|
// raw name — and never the source ("auto"/"custom").
|
||||||
_update_existing_log2ram_auto: "Install and configure Log2RAM",
|
_update_existing_log2ram_auto: "Install and configure Log2RAM",
|
||||||
_update_existing_log2ram_custom: "Install and configure Log2RAM",
|
_update_existing_log2ram_custom: "Install and configure Log2RAM",
|
||||||
update_snapshot_schedule: "Install ZFS auto-snapshot",
|
update_snapshot_schedule: "Install ZFS auto-snapshot",
|
||||||
@@ -130,9 +130,10 @@ const FN_LABEL: Record<string, string> = {
|
|||||||
update_pve_appliance_manager: "Update Proxmox VE Appliance Manager",
|
update_pve_appliance_manager: "Update Proxmox VE Appliance Manager",
|
||||||
}
|
}
|
||||||
|
|
||||||
// Post-install functions run from the auto/customizable scripts; everything
|
// Post-install functions run from the automatic and the customizable scripts,
|
||||||
// else is a general host script (nvidia/tpu installers, PVE update, vfio…).
|
// which record themselves as "auto" and "custom"; everything else is a general
|
||||||
const POST_INSTALL_SOURCES = new Set(["auto", "customizable"])
|
// host script (nvidia/tpu installers, PVE update, vfio…).
|
||||||
|
const POST_INSTALL_SOURCES = new Set(["auto", "custom"])
|
||||||
|
|
||||||
// A few sources deserve a friendly name instead of a raw script identifier;
|
// A few sources deserve a friendly name instead of a raw script identifier;
|
||||||
// everything else shows the script it came from.
|
// everything else shows the script it came from.
|
||||||
|
|||||||
Reference in New Issue
Block a user