#!/bin/sh

# Un pequeño "script" para ajustar la fecha y la hora  bajo Linux con hwclock...

# Título que se utilizará en todas las cajas de Xdialog.
TITLE="Ajustar fecha y hora"

# Comprobamos la existencia de hwclock...
if ! [ -f /sbin/hwclock ] ; then
   Xdialog --title "$TITLE" --msgbox "/sbin/hwclock no se encuentra..." 0 0
   exit 0
fi

# Obtenemos la fecha, devuelta en el formato DD/MM/YYYY por Xdialog.
ENTEREDDATE=`Xdialog --stdout --title "$TITLE" --calendar "Seleccione la fecha..." 0 0 0 0 0`
if [ ! $? -eq 0 ]; then
   exit
fi

# Convertimos la fecha al formato MM/DD/YYYY usado por hwclock.
NEWDATE=`echo "$ENTEREDDATE" | awk --source 'BEGIN { FS="/" }' --source '{ print $2 "/" $1 "/" $3 }'`

# Obtenemos la hora en el formato HH:MM:SS.
NEWTIME=`Xdialog --stdout --title "$TITLE" --timebox "Seleccione la hora..." 0 0`
if [ ! $? -eq 0 ]; then
   Xdialog --title "$TITLE" --msgbox "Cancelado." 0 0
   exit
fi


# Ajustamos el reloj de hardware (RTC) y despues el reloj del sistema.

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`

date $DT


Xdialog --title "Información" --msgbox "Su pantalla podría ponerse en negro durante algunos segundos, Por favor espere..." 0 0

/usr/sbin/hwclock --systohc --localtime

THEDATE=`date`
Xdialog --title "Información" --msgbox "Hecho. La fecha y la hora fueron ajustadas a $THEDATE" 0 0 
