#!/bin/rc if(! test -e /n/dump/1991) 9fs dump fn nummon{ switch($1){ case Jan echo 01 case Feb echo 02 case Mar echo 03 case Apr echo 04 case May echo 05 case Jun echo 06 case Jul echo 07 case Aug echo 08 case Sep echo 09 case Oct echo 10 case Nov echo 11 case Dec echo 12 } } fn usage { echo 'usage: yesterday [-c] [-[[[yy]yy]mm]dd] file ...' >[1=2] exit 'usage' } year=`{date|sed 's/.* //'} copy=no switch($1){ case -c copy=yes shift } switch($1){ case -?? mon=`{nummon `{date|sed 's/^....(...).*/\1/'}} last=/n/dump/$year/$mon ^`{echo $1|sed 's/^-//'} shift case -???? last=/n/dump/$year/ ^ `{echo $1|sed 's/^-//'} shift case -?????? last=/n/dump/ ^ `{echo $year|sed 's/..$//'} ^ `{echo $1|sed 's/^-(..)/\1\//'} shift case -???????? last=/n/dump/ ^ `{echo $1|sed 's/^-(....)/\1\//'} shift case -* usage case * last=`{ls -lt /n/dump/$year|sed 1q|sed 's/.* //'} } switch($1){ case -c copy=yes shift } if(~ $#* 0) usage if(! test -e $last){ echo 'yesterday:' \ `{echo $last|sed 's/.n.dump.(....).(..)(..)/\1 \2 \3/'} \ 'is not a backup day' exit 'bad date' } dir=`{pwd} if(! ~ $status ''){ echo 'yesterday: can''t find directory' exit 'pwd failed' } for(i){ switch($i){ case /* if(~ $copy yes){ echo cp $last^$i . cp $last^$i . } if not echo $last^$i case * if(~ $copy yes){ echo cp $last^$dir/$i $i cp $last^$dir/$i $i } if not echo $last^$dir/$i } } exit ''