#!/bin/rc # Update environment information with what we know. # Scan for user location and other std context. # Users are expected to customize this as they see it fits. # Each function can be used separately. First, functions # extracting location and status are used, then functions # taking appropriate actions. bfs /devs/x10 bfs /devs/hx fn visits { visit=`{cat /devs/x10/visit:$location >[2]/dev/null} if (~ $#visit 0 ) visit=no if (~ $visit on ) visit=yes if (~ $visit off ) visit=no echo $visit >/where/$location/visit } fn locate { if (test -e $home/ohist && ! test $home/ohist -older 10m ) uloc=$location if not { uloc=`{cat /devs/hx/$user >[2]/dev/null} if (~ $#uloc 0) uloc=none } echo $uloc >/who/$user/where } fn setstatus { uvisit=`{cat /where/$uloc/visit >[2]/dev/null} if (~ $#uvisit 0) uvisit=no if (~ $uvisit yes on) sts=busy if not { if ( ~ $uloc none) sts=away if not sts=online } echo $sts >/who/$user/status } fn updateweb { # Update nemo's web switch($sts){ case away x10nemo='I am not at my office right now' case online x10nemo='I am at my office room right now and nobody is visiting.' case busy x10nemo='I am at my office room right now and somebody else is visiting.' } SEP='x10 generated' echo $x10nemo | /usr/nemo/bin/rc/chsec \ $home/doc/www/INDEX.html > $home/doc/www/index.html } while(;){ visits # see if they are visiting locate # locate the user setstatus # determine his status updateweb # update his web page. sleep 30 }