更新 menu.sh,修复 changePorts

This commit is contained in:
Ing 2024-11-09 00:47:04 +08:00
parent 74e0af058e
commit a0d47860d3

View File

@ -2661,74 +2661,76 @@ function changePorts() {
HTTP=$(grep -i '^HTTP_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) HTTP=$(grep -i '^HTTP_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2)
DUFS=$(grep -i '^DUFS_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) DUFS=$(grep -i '^DUFS_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2)
TTYD=$(grep -i '^TTYD_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) TTYD=$(grep -i '^TTYD_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2)
DIALOG --title "$(TEXT "Settings")" \ while true; do
--form "${MSG}" 11 70 3 "HTTP" 1 1 "${HTTP:-7080}" 1 10 55 0 "DUFS" 2 1 "${DUFS:-7304}" 2 10 55 0 "TTYD" 3 1 "${TTYD:-7681}" 3 10 55 0 \ DIALOG --title "$(TEXT "Settings")" \
2>"${TMP_PATH}/resp" --form "${MSG}" 11 70 3 "HTTP" 1 1 "${HTTP:-7080}" 1 10 55 0 "DUFS" 2 1 "${DUFS:-7304}" 2 10 55 0 "TTYD" 3 1 "${TTYD:-7681}" 3 10 55 0 \
RET=$? 2>"${TMP_PATH}/resp"
case ${RET} in RET=$?
0) # ok-button case ${RET} in
function check_port() { 0) # ok-button
if [ -z "${1}" ]; then function check_port() {
return 0 if [ -z "${1}" ]; then
else
if [[ "${1}" =~ ^[0-9]+$ ]] && [ "${1}" -ge 0 ] && [ "${1}" -le 65535 ]; then
return 0 return 0
else else
return 1 if [[ "${1}" =~ ^[0-9]+$ ]] && [ "${1}" -ge 0 ] && [ "${1}" -le 65535 ]; then
return 0
else
return 1
fi
fi fi
}
HTTP=$(sed -n '1p' "${TMP_PATH}/resp")
DUFS=$(sed -n '2p' "${TMP_PATH}/resp")
TTYD=$(sed -n '3p' "${TMP_PATH}/resp")
EP=""
for P in "${HTTP}" "${DUFS}" "${TTYD}"; do check_port "${P}" || EP="${EP} ${P}"; done
if [ -n "${EP}" ]; then
DIALOG --title "$(TEXT "Settings")" \
--yesno "$(printf "$(TEXT "Invalid %s port number, retry?")" "${EP}")" 0 0
[ $? -eq 0 ] && continue || break
fi fi
} # save to rrorg.conf
HTTP=$(sed -n '1p' "${TMP_PATH}/resp") rm -f "/etc/rrorg.conf"
DUFS=$(sed -n '2p' "${TMP_PATH}/resp") [ ! "${HTTP:-7080}" = "7080" ] && echo "HTTP_PORT=${HTTP}" >>"/etc/rrorg.conf" && /etc/init.d/S90thttpd restart >/dev/null 2>&1
TTYD=$(sed -n '3p' "${TMP_PATH}/resp") [ ! "${DUFS:-7304}" = "7304" ] && echo "DUFS_PORT=${DUFS}" >>"/etc/rrorg.conf" && /etc/init.d/S99dufs restart >/dev/null 2>&1
EP="" [ ! "${TTYD:-7681}" = "7681" ] && echo "TTYD_PORT=${TTYD}" >>"/etc/rrorg.conf" && /etc/init.d/S99ttyd restart >/dev/null 2>&1
for P in "${HTTP}" "${DUFS}" "${TTYD}"; do check_port "${P}" || EP="${EP} ${P}"; done # save to rru
if [ -n "${EP}" ]; then RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
DIALOG --title "$(TEXT "Settings")" \ rm -rf "${RDXZ_PATH}"
--yesno "$(printf "$(TEXT "Invalid %s port number, retry?")" "${EP}")" 0 0 mkdir -p "${RDXZ_PATH}"
[ $? -eq 0 ] && continue || break [ -f "${RR_RAMUSER_FILE}" ] && (
fi
# save to rrorg.conf
rm -f "/etc/rrorg.conf"
[ ! "${HTTP:-7080}" = "7080" ] && echo "HTTP_PORT=${HTTP}" >>"/etc/rrorg.conf" && /etc/init.d/S90thttpd restart >/dev/null 2>&1
[ ! "${DUFS:-7304}" = "7304" ] && echo "DUFS_PORT=${DUFS}" >>"/etc/rrorg.conf" && /etc/init.d/S99dufs restart >/dev/null 2>&1
[ ! "${TTYD:-7681}" = "7681" ] && echo "TTYD_PORT=${TTYD}" >>"/etc/rrorg.conf" && /etc/init.d/S99ttyd restart >/dev/null 2>&1
# save to rru
RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
rm -rf "${RDXZ_PATH}"
mkdir -p "${RDXZ_PATH}"
[ -f "${RR_RAMUSER_FILE}" ] && (
cd "${RDXZ_PATH}"
xz -dc <"${RR_RAMUSER_FILE}" | cpio -idm
) >/dev/null 2>&1 || true
if [ ! -f "/etc/rrorg.conf" ]; then
rm -f "${RDXZ_PATH}/etc/rrorg.conf" 2>/dev/null
else
mkdir -p "${RDXZ_PATH}/etc"
cp -p /etc/rrorg.conf ${RDXZ_PATH}/etc
fi
if [ -n "$(ls -A "${RDXZ_PATH}" 2>/dev/null)" ] && [ -n "$(ls -A "${RDXZ_PATH}/etc" 2>/dev/null)" ]; then
(
cd "${RDXZ_PATH}" cd "${RDXZ_PATH}"
RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}') xz -dc <"${RR_RAMUSER_FILE}" | cpio -idm
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMUSER_FILE}" ) >/dev/null 2>&1 || true
) 2>&1 | DIALOG --title "$(TEXT "Settings")" if [ ! -f "/etc/rrorg.conf" ]; then
else rm -f "${RDXZ_PATH}/etc/rrorg.conf" 2>/dev/null
rm -f "${RR_RAMUSER_FILE}" else
fi mkdir -p "${RDXZ_PATH}/etc"
rm -rf "${RDXZ_PATH}" cp -p /etc/rrorg.conf ${RDXZ_PATH}/etc
[ ! -f "/etc/rrorg.conf" ] && MSG="$(TEXT "Ports for TTYD/DUFS/HTTP restored.")" || MSG="$(TEXT "Ports for TTYD/DUFS/HTTP changed.")" fi
DIALOG --title "$(TEXT "Settings")" \ if [ -n "$(ls -A "${RDXZ_PATH}" 2>/dev/null)" ] && [ -n "$(ls -A "${RDXZ_PATH}/etc" 2>/dev/null)" ]; then
--msgbox "${MSG}" 0 0 (
break cd "${RDXZ_PATH}"
;; RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}')
1) # cancel-button find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMUSER_FILE}"
break ) 2>&1 | DIALOG --title "$(TEXT "Settings")"
;; else
255) # ESC rm -f "${RR_RAMUSER_FILE}"
break fi
;; rm -rf "${RDXZ_PATH}"
esac [ ! -f "/etc/rrorg.conf" ] && MSG="$(TEXT "Ports for TTYD/DUFS/HTTP restored.")" || MSG="$(TEXT "Ports for TTYD/DUFS/HTTP changed.")"
DIALOG --title "$(TEXT "Settings")" \
--msgbox "${MSG}" 0 0
break
;;
1) # cancel-button
break
;;
255) # ESC
break
;;
esac
done
return return
} }