Blame


1 17e662e9 2005-07-13 devnull #!/usr/local/plan9/bin/rc
2 17e662e9 2005-07-13 devnull
3 17e662e9 2005-07-13 devnull path=($path $PLAN9/bin)
4 17e662e9 2005-07-13 devnull
5 17e662e9 2005-07-13 devnull fn usage {
6 17e662e9 2005-07-13 devnull echo 'usage: yesterday [-cd] [-[[yy]yy]mm]dd] [-n daysago] file ...' >[1=2]
7 17e662e9 2005-07-13 devnull exit 1
8 17e662e9 2005-07-13 devnull }
9 17e662e9 2005-07-13 devnull
10 17e662e9 2005-07-13 devnull fn Xcp {
11 17e662e9 2005-07-13 devnull echo cp $1 $2
12 17e662e9 2005-07-13 devnull cp $1 $2
13 17e662e9 2005-07-13 devnull }
14 17e662e9 2005-07-13 devnull
15 17e662e9 2005-07-13 devnull fn Xcarefulcp {
16 17e662e9 2005-07-13 devnull if(! cmp -s $1 $2) Xcp $1 $2
17 17e662e9 2005-07-13 devnull }
18 17e662e9 2005-07-13 devnull
19 17e662e9 2005-07-13 devnull fn Xdiff {
20 17e662e9 2005-07-13 devnull echo diff -c $1 $2
21 17e662e9 2005-07-13 devnull diff -c $1 $2
22 17e662e9 2005-07-13 devnull }
23 17e662e9 2005-07-13 devnull
24 17e662e9 2005-07-13 devnull fn Xecho {
25 17e662e9 2005-07-13 devnull echo $1
26 17e662e9 2005-07-13 devnull }
27 17e662e9 2005-07-13 devnull
28 17e662e9 2005-07-13 devnull year=`{date|sed 's/.* //'}
29 17e662e9 2005-07-13 devnull copy=Xecho
30 17e662e9 2005-07-13 devnull last=()
31 17e662e9 2005-07-13 devnull while(! ~ $#* 0 && ~ $1 -* && ! ~ $1 --){
32 17e662e9 2005-07-13 devnull switch($1){
33 17e662e9 2005-07-13 devnull case -c
34 17e662e9 2005-07-13 devnull copy=Xcp
35 17e662e9 2005-07-13 devnull shift
36 17e662e9 2005-07-13 devnull case -d
37 17e662e9 2005-07-13 devnull copy=Xdiff
38 17e662e9 2005-07-13 devnull shift
39 17e662e9 2005-07-13 devnull case -C
40 17e662e9 2005-07-13 devnull copy=Xcarefulcp
41 17e662e9 2005-07-13 devnull shift
42 17e662e9 2005-07-13 devnull case -n*
43 17e662e9 2005-07-13 devnull if(~ $1 -n){
44 17e662e9 2005-07-13 devnull if(~ $#* 1)
45 17e662e9 2005-07-13 devnull usage
46 17e662e9 2005-07-13 devnull shift
47 17e662e9 2005-07-13 devnull days=$1
48 17e662e9 2005-07-13 devnull }
49 17e662e9 2005-07-13 devnull if not
50 17e662e9 2005-07-13 devnull days=`{echo $1 | sed 's/^-.//'}
51 17e662e9 2005-07-13 devnull last=`{date -r `{perl -e 'print time() - '$days'*60*60*24'} |
52 17e662e9 2005-07-13 devnull 9 sed -e 's%... (...) (..) ..:..:.. ... (....)%\3/\1\2%' -e 'y/ /0/' -e $smon}
53 17e662e9 2005-07-13 devnull shift
54 17e662e9 2005-07-13 devnull case -[0-9]
55 17e662e9 2005-07-13 devnull mon=`{date|9 sed 's/^....(...).*/\1/' -e $smon}
56 17e662e9 2005-07-13 devnull last=$year/$mon ^`{echo $1|sed 's/^-/0/'}
57 17e662e9 2005-07-13 devnull shift
58 17e662e9 2005-07-13 devnull case -[0-9][0-9]
59 17e662e9 2005-07-13 devnull mon=`{date|9 sed 's/^....(...).*/\1/' -e $smon}
60 17e662e9 2005-07-13 devnull last=$year/$mon ^`{echo $1|9 sed 's/^-//'}
61 17e662e9 2005-07-13 devnull shift
62 17e662e9 2005-07-13 devnull case -[0-9][0-9][0-9][0-9]
63 17e662e9 2005-07-13 devnull last=$year/ ^ `{echo $1|9 sed 's/^-//'}
64 17e662e9 2005-07-13 devnull shift
65 17e662e9 2005-07-13 devnull case -[0-9][0-9][0-9][0-9][0-9][0-9]
66 17e662e9 2005-07-13 devnull last=`{echo $year|9 sed 's/..$//'} ^ `{echo $1|9 sed 's/^-(..)/\1\//'}
67 17e662e9 2005-07-13 devnull shift
68 17e662e9 2005-07-13 devnull case -[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
69 17e662e9 2005-07-13 devnull last=`{echo $1|9 sed 's/^-(....)/\1\//'}
70 17e662e9 2005-07-13 devnull shift
71 17e662e9 2005-07-13 devnull case *
72 17e662e9 2005-07-13 devnull usage
73 17e662e9 2005-07-13 devnull }
74 17e662e9 2005-07-13 devnull }
75 17e662e9 2005-07-13 devnull if(! ~ $#* 0 && ~ $1 --)
76 17e662e9 2005-07-13 devnull shift
77 17e662e9 2005-07-13 devnull
78 17e662e9 2005-07-13 devnull if(~ $#* 0)
79 17e662e9 2005-07-13 devnull usage
80 17e662e9 2005-07-13 devnull
81 17e662e9 2005-07-13 devnull dir=`{pwd}
82 17e662e9 2005-07-13 devnull if(! ~ $status ''){
83 17e662e9 2005-07-13 devnull echo 'yesterday: can''t find directory' >[1=2]
84 17e662e9 2005-07-13 devnull exit 'pwd failed'
85 17e662e9 2005-07-13 devnull }
86 17e662e9 2005-07-13 devnull
87 17e662e9 2005-07-13 devnull h=`{hostname}
88 17e662e9 2005-07-13 devnull switch($h){
89 17e662e9 2005-07-13 devnull case amsterdam
90 17e662e9 2005-07-13 devnull xdump=/dump/am
91 17e662e9 2005-07-13 devnull case *
92 17e662e9 2005-07-13 devnull if(! test -d /dump/$h){
93 17e662e9 2005-07-13 devnull echo 'no dumps on '^`{hostname} >[1=2]
94 17e662e9 2005-07-13 devnull exit 1
95 17e662e9 2005-07-13 devnull }
96 17e662e9 2005-07-13 devnull xdump=/dump/$h
97 17e662e9 2005-07-13 devnull }
98 17e662e9 2005-07-13 devnull
99 17e662e9 2005-07-13 devnull for(i){
100 17e662e9 2005-07-13 devnull xpath=$i
101 17e662e9 2005-07-13 devnull if(! ~ $xpath /*)
102 17e662e9 2005-07-13 devnull xpath=`{9 cleanname -d `{pwd} $i}
103 17e662e9 2005-07-13 devnull dumppath=$xpath
104 17e662e9 2005-07-13 devnull if(~ $#last 0)
105 17e662e9 2005-07-13 devnull xlast=`{9 ls -t $xdump/$year|sed 1q}
106 17e662e9 2005-07-13 devnull if not
107 17e662e9 2005-07-13 devnull xlast=$xdump/$last
108 17e662e9 2005-07-13 devnull $copy $xlast^$dumppath $xpath
109 17e662e9 2005-07-13 devnull }