Blame


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