#!/bin/ash
v=180612 #sfs
##wt -s "sudo rdate -s tick.greyware.com"  #&
#2007 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html)
#Translated for Russian by Valerij Kruvjalis (vkvkvk).

# A small script used to set the time under Linux with hwclock...
# MU: updated for puppy 1.0.7.
U(){ echo UTC ;   u=true ;    l=false ; }
L(){ echo local ; u=false ;   l=true ; }

NTPm(){
#[ ! "`egrep '^LOCAL' /etc/adjtime`" ] && U || L
[ "`stat -c %a /etc/rc.d/rdate`" = "755" ] && U || L

ntp="$(ntf -r "\
$l
Выключена. Установить дату и время
n
\
$u
Включена
y" "Синхронизация времени 
с NTP сервером" "
Необходимо подключение к интернет

`date`
"
)"

[ "$ntp" = "y" ] && sudo chmod 755 /etc/rc.d/rdate && wt "sudo rdate.sh"  &
[ "$ntp" = "n" ] && sudo chmod 755 /etc/rc.d/rdate && sudo date -s "`set-date`"
}

NTP(){
#[ "`timedatectl |awk '/NTP synchronized:/ {print $3}'`" = "no" ] && U || L
##[ "`timedatectl |awk '/Network time on/ {print $4}'`" = "no" ] && U || L
[ "`hwclock --help |grep verbo`" ] && vb=verbose || vb=debug
[ "`sudo hwclock --$vb | grep "Аппаратные часы выставлены по местному времени"`" ] && L || U

if [ "`which timedatectl`" ];then
    ntp="`timedatectl |awk '/Network time on/ {print $0}'`"
else
    ntp="Синхронизация времени"
    [ -e /etc/rc.d/rdate ] && ntp="$ntp включена" || ntp="$ntp выключена"
fi

ntp2="$(ntf -r "\
$u
Выключена. Установить дату и время
n
\
$l
Включена
y" "Синхронизация времени 
с NTP сервером" "
Необходимо подключение к интернет

$ntp
`date`
"
)"

if [ "`which timedatectl`" ];then
    [ "$ntp2" = "y" ] && wt "sudo timedatectl set-ntp true"
    [ "$ntp2" = "n" ] && wt "sudo timedatectl set-ntp false" && sudo date -s "`set-date`"
else
    [ "$ntp2" = "y" ] && m=755 || m=644
    wt "sudo chmod $m /etc/rc.d/rdate"
fi
#[ "$ntp" = "n" ] && wt "sudo timedatectl set-ntp false" && d="`set-date`" && wt "sudo date -s "${d}""
}

MENU(){
# Title to be used for all Xdialog boxes.
TITLE="Установка даты и времени"

## Now check for hwclock existence...
#if ! [ -f /usr/sbin/hwclock ] ; then
#   Xdialog --title "$TITLE" --msgbox "/usr/sbin/hwclock not found..." 0 0
#   exit 0
#fi

n="$(ntf -3 "\
gtk-help
Справка
4
\
gtk-edit
Изменить
1
\
gtk-refresh
Вкл.\выкл. синхронизацию с интернет
3" "$TITLE" "Текущие установки:

<small>`timedatectl status |head -9| sed 's/  //g' |egrep -v 'NTP |DST |RTC time' || sudo hwclock -r --$vb |tail -n+6 |egrep -v 'тика|^Calculated' |head -n-1 && date`</small>\
")"
#[ "$?" = "0" ] || exit
case "$n" in
4)	which timedatectl && defaultbrowser "wiki.archlinux.org/index.php/Time" || pman date; $0;exit  ;;
1)	date ;;
3)	if [ "`which timedatectl`" ];then
	    NTP
	else
	    NTPm
	fi
	$0  ;exit 
	;;
#*)	ntf -e "Ничего не выбрано" ;$0;exit ;;
*)	exit ;;
esac
}
MENU

z="$(ntf -l "Europe/Moscow
`timedatectl list-timezones || find /usr/share/zoneinfo/ -type f  |sed 's#/usr/share/zoneinfo/##'  |egrep '^Europe|^Asia'`" "Выберите часовой пояс")"
if [ "`which timectl`" ];then
    [ "$z" ] && wt "sudo timedatectl set-timezone $z"
else [ "$z" ] && wt "sudo ln -sf /usr/share/zoneinfo/$z /etc/localtime"
fi
#exit

XX(){
ntf -q "'UTC' или 'local' (местный) стандарт времени в BIOS" "
Текущие установки: <b>`sudo hwclock -r --$vb |egrep 'аппаратные'`</b>

Если на компьютере также используется 
Windows, оптимально: <b>местный</b>

<b>Изменить?</b>"
}

if [ "`which timedatectl`" ];then
    [ "`timedatectl |awk '/RTC in local TZ/ {print $5}'`" = "no" ] && U || L
else
    [ -f /etc/adjtime ] && L || U
fi

ul="`ntf -r "\
$u
UTC
u
\
$l
Местный
l" "Стандарт времени в BIOS" "Если на компьютере также используется 
Windows, оптимально: <b>местный</b>"
`"

#if [ "$?" = "0" ] ;then #yes
if [ "$ul" = "u" ] ;then #yes
    if [ "`which timedatectl`" ];then 
	[ "`timedatectl |awk '/RTC in local TZ/ {print $5}'`" = "no" ] && wt "sudo timedatectl set-local-rtc 1" || wt "sudo timedatectl set-local-rtc 0"
    else [ -f /etc/adjtime ] && sudo rm /etc/adjtime || sudo echo "0.0 0 0
0
LOCAL
" >/etc/adjtime
    fi
fi
tmp(){
# Get the date (returned in DD/MM/YYYY format by Xdialog.
ENTEREDDATE=`Xdialog --stdout --title "$TITLE" --calendar "Установите, пожалуйста, дату..." 0 0 0 0 0`
if [ ! $? -eq 0 ]; then
   exit
fi

# Convert the date to the MM/DD/YYYY format needed by hwclock.
NEWDATE=`echo "$ENTEREDDATE" | awk --source 'BEGIN { FS="/" }' --source '{ print $3 "-" $2 "-" $1 }'`

NEWDATE="`yad --center --calendar --undecorated --date-format=%Y-%m-%d`"
# Get the time in HH:MM:SS format.
NEWTIME=`Xdialog --stdout --title "$TITLE" --timebox "Установите, пожалуйста время" 0 0`
if [ ! $? -eq 0 ]; then
   Xdialog --title "$TITLE" --msgbox "Завершение работы." 0 0
   exit
fi
}
##d="`set-date`"

# Set the hardware clock (RTC) and then the system clock

#D=`echo $NEWDATE|sed "s/^...//" | sed "s/\/.*$//"`

#M=`echo $NEWDATE|sed "s/\/.*$//"`
#Y=`echo $NEWDATE|sed "s/^........//" | sed "s/ .*$//"`

#H=`echo $NEWTIME|sed "s/^.* //" | sed "s/://g" | sed "s/..$//"`

#DT=`echo $M$D$H$Y`
#echo "$NEWDATE $NEWTIME"
#wt "sudo timedatectl set-time "$NEWDATE $NEWTIME""
#[ "$d" ] && wt "sudo timedatectl set-time "$d""
##[ "$d" ] && (sudo timedatectl set-time "$d" || sudo date -s "$d")
#date $DT
#sleep 2
$0
exit
#hwclock --systohc --localtime

THEDATE=`date`
ntf -i "Установлено" "$THEDATE" ||
Xdialog --title "Информация" --msgbox "Завершено. Установлено $THEDATE" 0 0
