;
;   $VER: OnOff 1.1 (09.01.94)
;
;   Written 21. September 1993 by J.Matern
;   This file is part of the 'UpTime'-package © by Jürgen Matern.
;   The package may be redistributed under limitations discribed
;   in the file 'UpTime.doc' which should have come with this
;   distribution. Read this file for more information!
;
;   Last changed: 9. January 1994
;
set lastdate `date`
if exists ENV:UpTime/UpDate
   set lastdate `getenv UpTime/UpDate`
endif
set OnOffFileName S:OnOff.++
if exists ENV:UpTime/OnOffFileName
   set OnOffFileName `getenv UpTime/OnOffFileName`
endif
set resets 0
if exists ENV:UpTime/resets
   set resets `getenv UpTime/resets`
endif
set yesterday yesterday
if exists ENV:UpTime/yesterday
   set yesterday `getenv UpTime/yesterday`
endif
set tomorrow tomorrow
if exists ENV:UpTime/tomorrow
   set tomorrow `getenv UpTime/tomorrow`
endif
set lastday `S:CutArg $lastdate`
set nowdate $LogBoot
set nowday $NowBoot

if "$lastday" eq "$nowday"
   set correct 0
else
   date day $yesterday
   set yeday `date`
   date day $tomorrow
   set yeday `S:CutArg $yeday`
   if "$lastday" eq "$yeday"
       set correct 1440
   else
       set correct 10000
   endif
   unset yeday
endif

set lasttime `echo "$lastdate" len 8`
set nowtime `echo "$nowdate" len 8`
set lhh `echo $lasttime first 1 len 1`
set lhl `echo $lasttime first 2 len 1`
set lmh `echo $lasttime first 4 len 1`
set lml `echo $lasttime first 5 len 1`
set nhh `echo $nowtime first 1 len 1`
set nhl `echo $nowtime first 2 len 1`
set nmh `echo $nowtime first 4 len 1`
set nml `echo $nowtime first 5 len 1`
set lh `eval $lhh * 10 + $lhl`
set lm `eval $lmh * 10 + $lml`
set nh `eval $nhh * 10 + $nhl`
set nm `eval $nmh * 10 + $nml`
set lm `eval 0 + $lh * 60 + $lm`
set nm `eval 0 + $nh * 60 + $nm + $correct`
set dif `eval $nm - $lm`

if val $dif gt 12
; Change this -^ value, if you changed the default in 'IncreaseUpTime'!
; Example: You increase your UpTime every 5 minutes and your system needs
; about 2 minutes to boot after a reset, then set this value to 7 (=5+2)!
   set lastyear `echo $LastBoot len 2`
   set lastyear `echo "$lastyear" first 4 len 2`
   set nowyear `echo $NowBoot len 2`
   set nowyear `echo "$nowyear" first 4 len 2`

   if $lastyear not eq $nowyear
      set newyear 1
      if val $resets not eq 0
         if val $resets eq 1
            echo >> $OnOffFileName You had 1 reset!
         else
            echo >> $OnOffFileName You had $resets resets!
         endif
      endif
      echo >> $OnOffFileName Turned system off: $lastdate
      echo > ENVARC:UpTime/resets 0
      echo >> T:OnOff.temp "Turned system on: " $nowdate
   else
      if val $resets not eq 0
         if val $resets eq 1
            echo >> $OnOffFileName You had 1 reset!
         else
            echo >> $OnOffFileName You had $resets resets!
         endif
      endif
      echo >> $OnOffFileName Turned system off: $lastdate
      echo > ENVARC:UpTime/resets 0
      echo >> $OnOffFileName "*NTurned system on: " $nowdate
   endif
else
   set resets `eval $resets + 1`
   echo > ENVARC:UpTime/resets $resets
endif
echo > ENVARC:UpTime/UpDate $nowdate

unset lastdate
unset nowdate
unset lastday
unset nowday
unset lastyear
unset nowyear
unset correct
unset lasttime
unset nowtime
unset lh
unset lm
unset nh
unset nm
unset lhh
unset lhl
unset nhh
unset nhl
unset lmh
unset lml
unset nmh
unset nml
unset dif
unset resets
unset yesterday
unset tomorrow
; don't "unset newyear"; it's needed in file "S:CheckBootDate"
