change system time feature

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
This commit is contained in:
alexgithublab 2024-07-24 14:09:40 +02:00 committed by Thierry Laurion
parent 2ea14bcbeb
commit ff9dd5f667
No known key found for this signature in database
GPG Key ID: 9A53E1BB3FF00461
2 changed files with 64 additions and 0 deletions

60
initrd/bin/change-time Normal file
View File

@ -0,0 +1,60 @@
#!/bin/bash
#change time using hwclock and date -s
clear
echo -e -n "Please enter the date and time you wish to set\n"
get_date () {
echo -e -n "enter the $1 please ($2-$3) (enter for $2)\n"
read -n $4 value
echo -e "\n"
#if enter
if [[ $value = "" ]]; then
value=$2
fi
#must be a $4 digits number between $2 and $3
while [[ ! $value =~ ^[0-9]{$4} ]] || [[ ${value#0} -lt $2 ]] || [[ ${value#0} -gt $3 ]];
do
echo -e -n "wrong $1, you enter "$value" please enter it again, must be a $4 digits number between $2 and $3 (press enter for $2) \n"
read -n $4 value
echo -e "\n"
if [[ $value = "" ]]; then
value=$2
fi
done
}
get_date "year" "2024" "2200" "4"
year=$value
get_date "month" "01" "12" "2"
month=$value
get_date "day" "01" "31" "2"
day=$value
get_date "hour" "00" "23" "2"
hour=$value
get_date "min" "00" "59" "2"
min=$value
get_date "sec" "00" "59" "2"
sec=$value
##getting the output of date -s
OUTPUT=$(date -s "$year-$month-$day $hour:$min:$sec" 2>&1)
##if output is starting with the letter d which is the beginning of the error message then we do the script again
if [[ ${OUTPUT} == d* ]]; then
echo "The date is not correct, press any key to set it again"
echo -e "\n"
read -n 1 noting
clear
change-time
else
hwclock -w
echo -e "the date has been sucessfully set to $year-$month-$day $hour:$min:$sec"
echo -e "\n"
echo -e "press any key to return to the menu"
echo -e "\n"
read -n 1 nothing
fi

View File

@ -438,6 +438,7 @@ show_options_menu()
'C' ' Reencrypt LUKS container -->' \
'P' ' Change LUKS Disk Recovery Key passphrase ->' \
'R' ' Check/Update file hashes on root disk -->' \
'h' ' Change system time' \
'x' ' Exit to recovery shell' \
'r' ' <-- Return to main menu' \
2>/tmp/whiptail || recovery "GUI menu failed"
@ -476,6 +477,9 @@ show_options_menu()
R )
root-hashes-gui.sh
;;
h )
change-time
;;
x )
recovery "User requested recovery shell"
;;