Add syntax check for installed launcher script

Added defensive checks to ensure the installed launcher script passes syntax validation before proceeding with installation.
This commit is contained in:
MacRimi
2026-04-18 00:36:30 +02:00
committed by GitHub
parent 9e4e0bc24a
commit 1f7bf74970

View File

@@ -821,6 +821,13 @@ install_normal_version() {
cp "./version.txt" "$LOCAL_VERSION_FILE"
cp "./install_proxmenux.sh" "$BASE_DIR/install_proxmenux.sh"
# Defensive: strip CRLF and reject a broken launcher before we declare success.
sed -i 's/\r$//' "$INSTALL_DIR/$MENU_SCRIPT" "$UTILS_FILE" 2>/dev/null || true
if ! bash -n "$INSTALL_DIR/$MENU_SCRIPT" 2>/dev/null; then
msg_error "Installed launcher failed syntax check. Installation aborted."
exit 1
fi
# Wipe the scripts tree before copying so any file removed upstream
# (renamed, consolidated, deprecated) disappears from the user install.
# Only $BASE_DIR/scripts/ is cleared; config.json, cache.json,
@@ -963,13 +970,19 @@ install_translation_version() {
cp "./menu" "$INSTALL_DIR/$MENU_SCRIPT"
cp "./version.txt" "$LOCAL_VERSION_FILE"
cp "./install_proxmenux.sh" "$BASE_DIR/install_proxmenux.sh"
sed -i 's/\r$//' "$INSTALL_DIR/$MENU_SCRIPT" "$UTILS_FILE" 2>/dev/null || true
if ! bash -n "$INSTALL_DIR/$MENU_SCRIPT" 2>/dev/null; then
msg_error "Installed launcher failed syntax check. Installation aborted."
exit 1
fi
mkdir -p "$BASE_DIR/scripts"
cp -r "./scripts/"* "$BASE_DIR/scripts/"
chmod -R +x "$BASE_DIR/scripts/"
chmod +x "$BASE_DIR/install_proxmenux.sh"
msg_ok "Necessary files created."
chmod +x "$INSTALL_DIR/$MENU_SCRIPT"
((current_step++))