From d55ca84ccd73dac3d574d92d53da506aaf6e9435 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Mon, 2 Dec 2024 23:42:03 +0100 Subject: [PATCH] tree: fix more logic Signed-off-by: AuxXxilium --- files/initrd/opt/arc/boot.sh | 2 +- files/initrd/opt/arc/include/functions.sh | 4 +- files/initrd/opt/arc/ramdisk-patch.sh | 52 ++++++++++++----------- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/files/initrd/opt/arc/boot.sh b/files/initrd/opt/arc/boot.sh index f658d1a0..f36bd3c5 100755 --- a/files/initrd/opt/arc/boot.sh +++ b/files/initrd/opt/arc/boot.sh @@ -292,7 +292,7 @@ elif [ "${DIRECTBOOT}" = "false" ]; then [ -f "${TMP_PATH}/qrcode_boot.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_boot.png" >/dev/null 2>/dev/null || true fi - for T in $(w 2>/dev/null | grep -v 'TTY' | awk '{print $2}'); do + for T in $(busybox w 2>/dev/null | grep -v 'TTY' | awk '{print $2}'); do if [ -w "/dev/${T}" ]; then [ -n "${IPCON}" ] && echo -e "Use \033[1;34mhttp://${IPCON}:5000\033[0m or try \033[1;34mhttp://find.synology.com/ \033[0mto find DSM and proceed.\n\n\033[1;37mThis interface will not be operational. Wait a few minutes.\033[0m\n" >"/dev/${T}" 2>/dev/null || echo -e "Try \033[1;34mhttp://find.synology.com/ \033[0mto find DSM and proceed.\n\n\033[1;37mThis interface will not be operational. Wait a few minutes.\nNo IP found.\033[0m\n" >"/dev/${T}" 2>/dev/null fi diff --git a/files/initrd/opt/arc/include/functions.sh b/files/initrd/opt/arc/include/functions.sh index 388ef50b..d38d3b8a 100755 --- a/files/initrd/opt/arc/include/functions.sh +++ b/files/initrd/opt/arc/include/functions.sh @@ -606,12 +606,12 @@ function __umountDSMRootDisk() { function _bootwait() { # Exec Bootwait to check SSH/Web connection BOOTWAIT=5 - w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WB + busybox w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WB MSG="" while test ${BOOTWAIT} -ge 0; do MSG="\033[1;33mAccess SSH/Web will interrupt boot...\033[0m" echo -en "\r${MSG}" - w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WC + busybox w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WC if ! diff WB WC >/dev/null 2>&1; then echo -en "\r\033[1;33mAccess SSH/Web detected and boot is interrupted.\033[0m\n" rm -f WB WC diff --git a/files/initrd/opt/arc/ramdisk-patch.sh b/files/initrd/opt/arc/ramdisk-patch.sh index 13473abf..64736d17 100755 --- a/files/initrd/opt/arc/ramdisk-patch.sh +++ b/files/initrd/opt/arc/ramdisk-patch.sh @@ -93,21 +93,21 @@ while IFS=': ' read -r KEY VALUE; do done < <(readConfigMap "modules" "${USER_CONFIG_FILE}") # Patches (diff -Naru OLDFILE NEWFILE > xxx.patch) -PATCHES=() -PATCHES+=("ramdisk-etc-rc-*.patch") -PATCHES+=("ramdisk-init-script-*.patch") -PATCHES+=("ramdisk-post-init-script-*.patch") -PATCHES+=("ramdisk-disable-root-pwd-*.patch") -PATCHES+=("ramdisk-disable-disabled-ports-*.patch") -for PE in ${PATCHES[@]}; do +PATCHS=( + "ramdisk-etc-rc-*.patch" + "ramdisk-init-script-*.patch" + "ramdisk-post-init-script-*.patch" + "ramdisk-disable-root-pwd-*.patch" + "ramdisk-disable-disabled-ports-*.patch" +) +for PE in "${PATCHS[@]}"; do RET=1 echo "Patching with ${PE}" >"${LOG_FILE}" + # ${PE} contains *, so double quotes cannot be added for PF in $(ls ${PATCH_PATH}/${PE} 2>/dev/null); do echo "Patching with ${PF}" >>"${LOG_FILE}" - ( - cd "${RAMDISK_PATH}" - patch -p1 -i "${PF}" >>"${LOG_FILE}" 2>&1 - ) + # busybox patch and gun patch have different processing methods and parameters. + (cd "${RAMDISK_PATH}" && busybox patch -p1 -i "${PF}") >>"${LOG_FILE}" 2>&1 RET=$? [ ${RET} -eq 0 ] && break done @@ -149,20 +149,22 @@ gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KVERP}-${LKM}.ko.gz" >"${RAMDISK_PATH}/u # Addons echo "Create addons.sh" >"${LOG_FILE}" mkdir -p "${RAMDISK_PATH}/addons" -echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh" -echo 'echo "addons.sh called with params ${@}"' >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export LOADERLABEL=\"ARC\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export LOADERVERSION=\"${ARC_VERSION}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export LOADERBUILD=\"${ARC_BUILD}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export LOADERBRANCH=\"${ARCBRANCH}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export PLATFORM=\"${PLATFORM}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export PRODUCTVER=\"${PRODUCTVER}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export MODEL=\"${MODEL}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export MODELID=\"${MODELID}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export MLINK=\"${PAT_URL}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export MCHECKSUM=\"${PAT_HASH}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export LAYOUT=\"${LAYOUT}\"" >>"${RAMDISK_PATH}/addons/addons.sh" -echo "export KEYMAP=\"${KEYMAP}\"" >>"${RAMDISK_PATH}/addons/addons.sh" +{ + echo "#!/bin/sh" + echo 'echo "addons.sh called with params ${@}"' + echo "export LOADERLABEL=\"ARC\"" + echo "export LOADERVERSION=\"${ARC_VERSION}\"" + echo "export LOADERBUILD=\"${ARC_BUILD}\"" + echo "export LOADERBRANCH=\"${ARCBRANCH}\"" + echo "export PLATFORM=\"${PLATFORM}\"" + echo "export MODEL=\"${MODEL}\"" + echo "export MODELID=\"${MODELID}\"" + echo "export PRODUCTVER=\"${PRODUCTVER}\"" + echo "export MLINK=\"${PAT_URL}\"" + echo "export MCHECKSUM=\"${PAT_HASH}\"" + echo "export LAYOUT=\"${LAYOUT}\"" + echo "export KEYMAP=\"${KEYMAP}\"" +} >"${RAMDISK_PATH}/addons/addons.sh" chmod +x "${RAMDISK_PATH}/addons/addons.sh" # System Addons