mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
chore: Update timezone selection logic and set timezone based on user choice
This commit is contained in:
parent
6898e5b2fa
commit
bce98ab822
@ -20,12 +20,16 @@ BUS=$(getBus "${LOADER_DISK}")
|
|||||||
|
|
||||||
# Print text centralized
|
# Print text centralized
|
||||||
clear
|
clear
|
||||||
[ -z "${COLUMNS}" ] && COLUMNS=50
|
COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}')
|
||||||
|
[ -z "${COLUMNS}" ] && COLUMNS=80
|
||||||
TITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
|
TITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
|
||||||
|
DATE="$(date)"
|
||||||
printf "\033[1;44m%*s\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\n" ${COLUMNS} ""
|
||||||
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
||||||
printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
|
printf "\033[1;31m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
|
||||||
printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
||||||
|
printf "\033[1;32m%*s\033[0m\n" ${COLUMNS} "${DATE}"
|
||||||
|
|
||||||
TITLE="BOOTING:"
|
TITLE="BOOTING:"
|
||||||
[ ${EFI} -eq 1 ] && TITLE+=" [UEFI]" || TITLE+=" [BIOS]"
|
[ ${EFI} -eq 1 ] && TITLE+=" [UEFI]" || TITLE+=" [BIOS]"
|
||||||
[ "${BUS}" = "usb" ] && TITLE+=" [${BUS^^} flashdisk]" || TITLE+=" [${BUS^^} DoM]"
|
[ "${BUS}" = "usb" ] && TITLE+=" [${BUS^^} flashdisk]" || TITLE+=" [${BUS^^} DoM]"
|
||||||
@ -208,13 +212,31 @@ echo -e "$(TEXT "Cmdline:\n")\033[1;36m${CMDLINE_LINE}\033[0m"
|
|||||||
|
|
||||||
DIRECT="$(readConfigKey "directboot" "${USER_CONFIG_FILE}")"
|
DIRECT="$(readConfigKey "directboot" "${USER_CONFIG_FILE}")"
|
||||||
if [ "${DIRECT}" = "true" ]; then
|
if [ "${DIRECT}" = "true" ]; then
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set rr_version="$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set dsm_model="${MODEL}(${PLATFORM})"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set dsm_version="${PRODUCTVER}(${BUILDNUM}$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}"))"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set dsm_kernel="${KERNEL}"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set dsm_lkm="${LKM}"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set sys_dmi="${DMI}"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set sys_cpu="${CPU}"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set sys_mem="${MEM}"
|
||||||
|
|
||||||
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
CMDLINE_DIRECT=$(echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g') # Escape special chars
|
||||||
grub-editenv ${USER_GRUBENVFILE} set dsm_cmdline="${CMDLINE_DIRECT}"
|
grub-editenv ${USER_GRUBENVFILE} set dsm_cmdline="${CMDLINE_DIRECT}"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set next_entry="direct"
|
grub-editenv ${USER_GRUBENVFILE} set next_entry="direct"
|
||||||
|
|
||||||
echo -e "\033[1;33m$(TEXT "Reboot to boot directly in DSM")\033[0m"
|
echo -e "\033[1;33m$(TEXT "Reboot to boot directly in DSM")\033[0m"
|
||||||
reboot
|
reboot
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset rr_version
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_model
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_version
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_kernel
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_lkm
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset sys_dmi
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset sys_cpu
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset sys_mem
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset dsm_cmdline
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_cmdline
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset next_entry
|
grub-editenv ${USER_GRUBENVFILE} unset next_entry
|
||||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo) || true
|
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo) || true
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
[ -z "${WORK_PATH}" -o ! -d "${WORK_PATH}/include" ] && WORK_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" >/dev/null 2>&1 && pwd)"
|
[ -z "${WORK_PATH}" -o ! -d "${WORK_PATH}/include" ] && WORK_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
if type gettext >/dev/null 2>&1; then
|
if type gettext >/dev/null 2>&1; then
|
||||||
if [ -d "${WORK_PATH}/lang" ]; then
|
|
||||||
export TEXTDOMAINDIR="${WORK_PATH}/lang"
|
|
||||||
fi
|
|
||||||
if [ -f "${PART1_PATH}/.locale" ]; then
|
|
||||||
export LC_ALL="$(cat ${PART1_PATH}/.locale)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
alias TEXT='gettext "rr"'
|
alias TEXT='gettext "rr"'
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
else
|
else
|
||||||
alias TEXT='echo'
|
alias TEXT='echo'
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
fi
|
fi
|
||||||
|
if [ -d "${WORK_PATH}/lang" ]; then
|
||||||
|
export TEXTDOMAINDIR="${WORK_PATH}/lang"
|
||||||
|
fi
|
||||||
|
if [ -f "${PART1_PATH}/.locale" ]; then
|
||||||
|
export LC_ALL="$(cat ${PART1_PATH}/.locale)"
|
||||||
|
fi
|
||||||
|
if [ -f "${PART1_PATH}/.timezone" ]; then
|
||||||
|
TIMEZONE="$(cat ${PART1_PATH}/.timezone)"
|
||||||
|
ln -sf "/usr/share/zoneinfo/right/${TIMEZONE}" /etc/localtime
|
||||||
|
fi
|
||||||
|
@ -11,12 +11,15 @@ checkBootLoader || die "$(TEXT "The loader is corrupted, please rewrite it!")"
|
|||||||
|
|
||||||
# Shows title
|
# Shows title
|
||||||
clear
|
clear
|
||||||
[ -z "${COLUMNS}" ] && COLUMNS=50
|
COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}')
|
||||||
|
[ -z "${COLUMNS}" ] && COLUMNS=80
|
||||||
TITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
|
TITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
|
||||||
|
DATE="$(date)"
|
||||||
printf "\033[1;44m%*s\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\n" ${COLUMNS} ""
|
||||||
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
||||||
printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
|
printf "\033[1;31m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
|
||||||
printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} ""
|
printf "\033[1;44m%*s\033[A\n" ${COLUMNS} ""
|
||||||
|
printf "\033[1;32m%*s\033[0m\n" ${COLUMNS} "${DATE}"
|
||||||
|
|
||||||
# Get first MAC address
|
# Get first MAC address
|
||||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo) || true
|
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep -v lo) || true
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -2688,7 +2688,8 @@ function advancedMenu() {
|
|||||||
cp -Rf "$(dirname ${WORK_PATH})" "${RDXZ_PATH}/"
|
cp -Rf "$(dirname ${WORK_PATH})" "${RDXZ_PATH}/"
|
||||||
(
|
(
|
||||||
cd "${RDXZ_PATH}"
|
cd "${RDXZ_PATH}"
|
||||||
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s $(du -sb ${RDXZ_PATH} | awk '{print $1}') | xz -9 --check=crc32 >"${RR_RAMDISK_FILE}"
|
RDSIZE=$(du -sb ${RDXZ_PATH} 2>/dev/null | awk '{print $1}')
|
||||||
|
find . 2>/dev/null | cpio -o -H newc -R root:root | pv -n -s ${RDSIZE:-1} | xz -9 --check=crc32 >"${RR_RAMDISK_FILE}"
|
||||||
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
|
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
|
||||||
--gauge "$(TEXT "Saving ...\n(It usually takes 5-10 minutes, please be patient and wait.)")" 8 100
|
--gauge "$(TEXT "Saving ...\n(It usually takes 5-10 minutes, please be patient and wait.)")" 8 100
|
||||||
rm -rf "${RDXZ_PATH}"
|
rm -rf "${RDXZ_PATH}"
|
||||||
@ -2762,6 +2763,20 @@ function languageMenu() {
|
|||||||
export LC_ALL="${LANGUAGE}.UTF-8"
|
export LC_ALL="${LANGUAGE}.UTF-8"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Shows language to user choose one
|
||||||
|
function timezoneMenu() {
|
||||||
|
OPTIONS="$(find /usr/share/zoneinfo/right -type f | cut -d '/' -f 6- | sort | uniq | xargs)"
|
||||||
|
DIALOG \
|
||||||
|
--default-item "${LAYOUT}" --no-items --menu "$(TEXT "Choose a timezone")" 0 0 0 ${OPTIONS} \
|
||||||
|
2>${TMP_PATH}/resp
|
||||||
|
[ $? -ne 0 ] && return
|
||||||
|
resp=$(cat ${TMP_PATH}/resp 2>/dev/null)
|
||||||
|
[ -z "${resp}" ] && return
|
||||||
|
TIMEZONE=${resp}
|
||||||
|
echo "${TIMEZONE}" >${PART1_PATH}/.timezone
|
||||||
|
ln -sf "/usr/share/zoneinfo/right/${TIMEZONE}" /etc/localtime
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Shows available keymaps to user choose one
|
# Shows available keymaps to user choose one
|
||||||
function keymapMenu() {
|
function keymapMenu() {
|
||||||
@ -3508,6 +3523,7 @@ else
|
|||||||
echo "b \"$(TEXT "Boot the loader")\"" >>"${TMP_PATH}/menu"
|
echo "b \"$(TEXT "Boot the loader")\"" >>"${TMP_PATH}/menu"
|
||||||
fi
|
fi
|
||||||
echo "l \"$(TEXT "Choose a language")\"" >>"${TMP_PATH}/menu"
|
echo "l \"$(TEXT "Choose a language")\"" >>"${TMP_PATH}/menu"
|
||||||
|
echo "z \"$(TEXT "Choose a timezone")\"" >>"${TMP_PATH}/menu"
|
||||||
echo "k \"$(TEXT "Choose a keymap")\"" >>"${TMP_PATH}/menu"
|
echo "k \"$(TEXT "Choose a keymap")\"" >>"${TMP_PATH}/menu"
|
||||||
if [ 0$(du -sm ${PART3_PATH}/dl 2>/dev/null | awk '{printf $1}') -gt 1 ]; then
|
if [ 0$(du -sm ${PART3_PATH}/dl 2>/dev/null | awk '{printf $1}') -gt 1 ]; then
|
||||||
echo "c \"$(TEXT "Clean disk cache")\"" >>"${TMP_PATH}/menu"
|
echo "c \"$(TEXT "Clean disk cache")\"" >>"${TMP_PATH}/menu"
|
||||||
@ -3582,6 +3598,10 @@ else
|
|||||||
languageMenu
|
languageMenu
|
||||||
NEXT="m"
|
NEXT="m"
|
||||||
;;
|
;;
|
||||||
|
z)
|
||||||
|
timezoneMenu
|
||||||
|
NEXT="m"
|
||||||
|
;;
|
||||||
k)
|
k)
|
||||||
keymapMenu
|
keymapMenu
|
||||||
NEXT="m"
|
NEXT="m"
|
||||||
|
@ -83,8 +83,19 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
|
|||||||
set timeout="1"
|
set timeout="1"
|
||||||
menuentry 'Boot DSM kernel directly' --id direct {
|
menuentry 'Boot DSM kernel directly' --id direct {
|
||||||
set_gfxpayload
|
set_gfxpayload
|
||||||
echo "cmdline:"
|
echo "RR-version: ${rr_version}"
|
||||||
|
echo -n "bootuptime: "; date
|
||||||
|
echo ""
|
||||||
|
echo "Model: ${dsm_model}"
|
||||||
|
echo "version: ${dsm_version}"
|
||||||
|
echo "kernel: ${dsm_kernel}"
|
||||||
|
echo "LKM: ${dsm_lkm}"
|
||||||
|
echo "DMI: ${sys_dmi}"
|
||||||
|
echo "CPU: ${sys_cpu}"
|
||||||
|
echo "MEM: ${sys_mem}"
|
||||||
|
echo "Cmdline:"
|
||||||
echo "${dsm_cmdline}"
|
echo "${dsm_cmdline}"
|
||||||
|
echo ""
|
||||||
echo "Loading DSM kernel..."
|
echo "Loading DSM kernel..."
|
||||||
linux /zImage-dsm ${dsm_cmdline}
|
linux /zImage-dsm ${dsm_cmdline}
|
||||||
echo "Loading DSM initramfs..."
|
echo "Loading DSM initramfs..."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user