echo $$ > "/tmp/LCK..`basename $0`"
set_smart() {
- [ -z "$old_away" -o "$old_away" = "$old_smart" ] && \
- tpope away "$*"
+ if [ -z "$old_away" -o "$old_away" = "$old_smart" ] || [ "$phone" = present -a "$old_phone" = absent ]; then
+ tpope away "$*"
+ fi
smart="$*"
}
}
set_out() {
- # Away message is empty or older then our "smart" flag
- #[ -n "$old_away" -a "$HOME/.away" -nt "$HOME/.away-smart" ] || \
[ -z "$old_away" -o "$old_away" = "$old_smart" ] && \
tpope away "$*"
set_smart "$*"
set_in() {
if [ "`date +%k`" -ge 2 -a "`date +%k`" -le 9 ]; then
- #[ -n "$old_away" -a "$HOME/.away" -nt "$HOME/.away-smart" ] || \
set_smart "$sleeping"
else
set_smart "$*"
now="$(expr 60 \* $(date +%H) + $(date +%M))"
-if ! today --category='holiday' | grep '' >/dev/null; then
-today --category='school' | sed -e s/^..........// -e 's/ \[.*\]$//'|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
+today --category=school | sed -e s/^..........// -e 's/ \[.*\]$//'|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
while read times event; do
begin="$(expr 60 \* $(echo $times|sed -e 's/-.*//' -e 's/:/ + /g'))"
end="$(expr 60 \* $(echo $times|sed -e 's/.*-//' -e 's/:/ + /g'))"
max_end="$end"
+ end="`expr 3 \* $begin / 4 + $end / 4`"
begin="`expr $begin - 15`"
- end="`expr $begin / 2 + $end / 2`"
if [ "$begin" -le "$now" -a "$now" -lt "$end" ]; then
- echo "scheduled=\"Class ($event)\"" > "$HOME/.away-smart"
+ echo "scheduled=\"Class ($event)\"" >> "$HOME/.away-smart"
break
- elif [ "$old_away" = "$event" -a "$now" -gt "$max_end" ]; then
+ elif [ "$old_away" = "Class ($event)" -a "$now" -gt "$max_end" ]; then
echo "old_smart=\"$old_away\"" > "$HOME/.away-smart"
fi
done
-fi
-#today --category='!school' | sed -e s/^..........//|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
-#while read times event; do
-# begin="$(expr 60 \* $(echo $times|sed -e 's/-.*//' -e 's/:/ + /g'))"
-# end="$(expr 60 \* $(echo $times|sed -e 's/.*-//' -e 's/:/ + /g'))"
-# max_end="$end"
-# if [ "$begin" -le "$now" -a "$now" -lt "$end" ]; then
-# echo "scheduled=\"$event\"" > "$HOME/.away-smart"
-# break
-# elif [ "$old_away" = "$event" -a "$now" -gt "$max_end" ]; then
-# echo "old_smart=\"$old_away\"" > "$HOME/.away-smart"
-# fi
-#done
+cat ~/.away-smart
+
+today --category='!school'\ '!private' | sed -e s/^..........// -e 's/ \[[^[]*\]$//'|grep '[0-9][0-9]:[0-9][0-9]-[0-9][0-9]:[0-9][0-9]'| \
+while read times event; do
+ begin="$(expr 60 \* $(echo $times|sed -e 's/-.*//' -e 's/:/ + /g'))"
+ end="$(expr 60 \* $(echo $times|sed -e 's/.*-//' -e 's/:/ + /g'))"
+ max_end="$end"
+ if [ "$begin" -le "$now" -a "$now" -lt "$end" ]; then
+ echo "scheduled=\"$event\"" > "$HOME/.away-smart"
+ break
+ elif [ "$old_away" = "$event" -a "$now" -gt "$max_end" ]; then
+ echo "old_smart=\"$old_away\"" > "$HOME/.away-smart"
+ fi
+done
[ -f "$HOME/.away-smart" ] && . "$HOME/.away-smart"
old_sched="$scheduled"
for host in $livehosts; do
# True if a non-blanked display is found
- $ssh $host 'if DISPLAY=:0.0 xscreensaver-command -time >/dev/null 2>&1; then if DISPLAY=:0.0 xscreensaver-command -time 2>/dev/null|grep non-blanked >/dev/null; then true; else pid=`ps ax|grep "[0-9]:[0-9][0-9] ssh .*exec screen.*RR irc"|sed -e "s/^ *//"|cut -d" " -f 1`; [ -f "$HOME/.irc.lock" -o -z "$pid" ] || kill $pid; false; fi; else false; fi' && alive=$host
+ $ssh $host 'if DISPLAY=:0.0 xscreensaver-command -version >/dev/null 2>&1; then if DISPLAY=:0.0 xscreensaver-command -time 2>&1 |egrep "non-blanked|no saver status" >/dev/null; then true; else pid=`ps ax|grep "[0-9]:[0-9][0-9] ssh .*exec screen.*RR irc"|sed -e "s/^ *//"|cut -d" " -f 1`; [ -f "$HOME/.irc.lock" -o -z "$pid" ] || kill $pid; false; fi; else false; fi' && alive=$host
done
if ! ping -c 1 mona >/dev/null 2>/dev/null; then