diff --git a/README.md b/README.md index 46358d7..a4d9abb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ VE environments. Run as `root` on a Proxmox VE host: ```bash -bash <(curl -fsSL https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/V2/install-ta_proxmenu.sh) +bash <(curl -fsSL https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/main/install-ta_proxmenu.sh) ``` The installed launcher loads TA-ProxMenu's bundled defaults and colors, then @@ -22,9 +22,10 @@ branch, and fast-forward safety checks. Offline, unreachable, dirty, ahead, or diverged nodes are never overwritten and are reported as failures. Standalone hosts retain the local-only update behavior. -When testing this branch, use `tapm main` to switch the installed copy back to -the published main branch. The command refuses to switch when local changes, -local-only commits, or diverged branch history would be at risk. +Legacy installations automatically update from the published `main` branch. +On their first launch after receiving this version, control is handed to the +current preloader so the new startup configuration and registration procedures +run before the menu opens. The TA-ProxMenu Management menu can safely switch TA-ProxMenu between branches published on its Git origin. Branch switching is refused when the installed repository has @@ -104,7 +105,7 @@ Pulse can also be deployed without installing TA-ProxMenu. Run the standalone bootstrap as root on a Proxmox VE host: ```bash -bash <(curl -fsSL https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/V2/install-pulse.sh) +bash <(curl -fsSL https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/main/install-pulse.sh) ``` The bootstrap downloads the Pulse deployment module and its LXC storage helper @@ -167,7 +168,7 @@ without `https://` or a path. Repository updates use the installed TA-ProxMenu checkout's configured Git `origin` and do not overwrite the system configuration file. -On the first V2 launch after installation or upgrade, TA-ProxMenu detects a +On the first launch after installation or upgrade, TA-ProxMenu detects a missing or incomplete `/etc/ta-proxmenu/config.env` and interactively requests both values. Inputs are validated and written atomically with mode `0600` before update checks or menu actions continue. A non-interactive launch without @@ -176,7 +177,7 @@ a default company URL. ## Installation registry -V2 creates a random installation UUID and 256-bit credential in +TA-ProxMenu creates a random installation UUID and 256-bit credential in `/var/lib/ta-proxmenu/identity.env`. The directory is mode `0700` and the file is mode `0600`. The first successful launch enrolls the host with the broker. Later launches make one best-effort HTTPS call on completion or failure to diff --git a/inc/runtime-config.inc b/inc/runtime-config.inc index b6bc307..322a960 100644 --- a/inc/runtime-config.inc +++ b/inc/runtime-config.inc @@ -71,7 +71,7 @@ TAPM_ENSURE_RUNTIME_CONFIG() { exec 3>/dev/tty fi - printf '\nTA-ProxMenu V2 requires deployment service configuration.\n' \ + printf '\nTA-ProxMenu requires deployment service configuration.\n' \ >&3 while true; do printf 'TAPM broker HTTPS origin (example: https://tapm.example.com): ' \ diff --git a/install-pulse.sh b/install-pulse.sh index 27c7820..6033d28 100755 --- a/install-pulse.sh +++ b/install-pulse.sh @@ -3,7 +3,7 @@ set -u -o pipefail -TAPM_PULSE_SOURCE_BRANCH="${TAPM_PULSE_SOURCE_BRANCH:-V2}" +TAPM_PULSE_SOURCE_BRANCH="${TAPM_PULSE_SOURCE_BRANCH:-main}" TAPM_PULSE_SOURCE_BASE="${TAPM_PULSE_SOURCE_BASE:-https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/${TAPM_PULSE_SOURCE_BRANCH}}" TAPM_PULSE_BOOTSTRAP_DIR='' TAPM_TEMP_DIR='' diff --git a/proxmenu-scripts.sh b/proxmenu-scripts.sh index 8771d1d..bfcbbf7 100755 --- a/proxmenu-scripts.sh +++ b/proxmenu-scripts.sh @@ -1,6 +1,14 @@ #!/usr/bin/env bash # TA-Proxmenu - Proxmox Setup Scripts for TA Use +# Legacy main installations update their worktree from the old preloader and +# then launch this newly downloaded script without restarting run.sh. Hand the +# first post-update launch back to the current preloader so all current startup +# configuration and registration procedures run before the menu is loaded. +if [[ "${TAPM_PRELOADER_ACTIVE:-0}" != 1 ]]; then + exec /opt/idssys/ta-proxmenu/run.sh \ + "${1:-}" "${2:-}" "${3:-}" "${4:-}" +fi [ "${2:-}" != "q" ] && source /opt/idssys/ta-proxmenu/colors.inc source /opt/idssys/ta-proxmenu/defaults.inc diff --git a/run.sh b/run.sh index f453d14..c1a9330 100755 --- a/run.sh +++ b/run.sh @@ -190,7 +190,7 @@ case "${1:-}" in ;; esac -/opt/idssys/ta-proxmenu/proxmenu-scripts.sh \ +TAPM_PRELOADER_ACTIVE=1 /opt/idssys/ta-proxmenu/proxmenu-scripts.sh \ "${1:-}" "${2:-}" "${3:-}" "${4:-}" exit $? diff --git a/tests/test-pulse-standalone.sh b/tests/test-pulse-standalone.sh index d699255..9c30a13 100755 --- a/tests/test-pulse-standalone.sh +++ b/tests/test-pulse-standalone.sh @@ -6,8 +6,8 @@ source "${TEST_ROOT}/tests/testlib.sh" TAPM_PULSE_STANDALONE_NO_MAIN=1 source "${TEST_ROOT}/install-pulse.sh" -assert_success "default V2 source branch accepted" \ - TAPM_PULSE_VALID_SOURCE_BRANCH V2 +assert_success "default main source branch accepted" \ + TAPM_PULSE_VALID_SOURCE_BRANCH main assert_success "nested release branch accepted" \ TAPM_PULSE_VALID_SOURCE_BRANCH releases/pulse-6 assert_failure "empty source branch rejected" \ @@ -16,9 +16,9 @@ assert_failure "source branch traversal rejected" \ TAPM_PULSE_VALID_SOURCE_BRANCH '../main' assert_success "HTTPS source base accepted" \ TAPM_PULSE_VALID_SOURCE_BASE \ - https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/V2 + https://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/main assert_failure "HTTP source base rejected" \ TAPM_PULSE_VALID_SOURCE_BASE \ - http://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/V2 + http://tagit.technologyarch.com/TAI/TA-ProxMenu/raw/branch/main finish_tests diff --git a/tests/test-self-contained-runtime.sh b/tests/test-self-contained-runtime.sh index 023663c..371844b 100755 --- a/tests/test-self-contained-runtime.sh +++ b/tests/test-self-contained-runtime.sh @@ -18,5 +18,11 @@ assert_success "ENTER2CONTINUE is bundled in TA-ProxMenu defaults" \ assert_failure "runtime launchers do not reference external iDS defaults" \ grep -E -q '/opt/idssys/defaults|iDS-Defaults' \ "${TEST_ROOT}/run.sh" "${TEST_ROOT}/proxmenu-scripts.sh" +assert_success "current preloader marks proxmenu launches" \ + grep -q '^TAPM_PRELOADER_ACTIVE=1 /opt/idssys/ta-proxmenu/proxmenu-scripts.sh' \ + "${TEST_ROOT}/run.sh" +assert_success "legacy post-update launch returns to current preloader" \ + grep -q 'if \[\[ "${TAPM_PRELOADER_ACTIVE:-0}" != 1 \]\]; then' \ + "${TEST_ROOT}/proxmenu-scripts.sh" finish_tests