]> sourceware.org Git - lvm2.git/blame - scripts/last_cvs_update.sh
spacing
[lvm2.git] / scripts / last_cvs_update.sh
CommitLineData
75153387 1#!/bin/bash
b6534045
AL
2#$Header$
3################################################################################
4##
5## Copyright 2001 Sistina Software, Inc.
6##
7## This is free software released under the GNU General Public License.
8## There is no warranty for this software. See the file COPYING for
9## details.
10##
11## See the file CONTRIBUTORS for a list of contributors.
12##
13## This file is maintained by:
14## AJ Lewis <lewis@sistina.com>
15##
16## File name: last_cvs_update.sh
17##
18## Description: displays the last file updated by CVS commands and the date
19## it was updated. May be given a relative or absolute path.
20## Based on this information, you should be able to do a
21## cvs co -D $date GFS and get the same version of the source
22## tree as this tool was run on.
23##
24## Will also give you the CVS tag the source tree is based off
25## off when appropriate
26##
27## Output format:
28## [Tag: $TAG]
29## The last file updated by CVS was:
30## $path/$file
31## on
32## $date
33##
34################################################################################
35
36if [[ -z $1 ]];
37 then path=.;
38else
39 if [[ $1 == "-h" ]];
40 then echo "usage: $0 [ -h | path ]"
41 exit 0;
42 else
43 if [[ -d $1 ]]
44 then path=$1;
45 else
46 echo "usage: $0 [ -h | path ]"
47 exit 0;
48 fi
49 fi
50fi
51
52# grab the tag from the path passed in
53if [[ -f $path/CVS/Tag ]];
54 then echo "Tag: " `cat $path/CVS/Tag | sed -e 's/^[NT]//'`
55fi
56
57awk '
58BEGIN {
59 FS = "/"
60}
61{
62 # find the path for the Entries file
63 path = FILENAME
64 sub(/^\.\//, "", path)
65
66 # remove the CVS part of it
67 sub(/CVS\/Entries/, "", path)
68
69 # add the path the the filename that was modified, and put the date it was
70 # modified in as well
71 print path $2 " " $4
72
73}' `find $path -name "Entries" -printf "%h/%f "` | awk '
74# converts string name of month the a numeral
75function cvt_month(month) {
76 if(month == "Jan")
77 return 0
78 if(month == "Feb")
79 return 1
80 if(month == "Mar")
81 return 2
82 if(month == "Apr")
83 return 3
84 if(month == "May")
85 return 4
86 if(month == "Jun")
87 return 5
88 if(month == "Jul")
89 return 6
90 if(month == "Aug")
91 return 7
92 if(month == "Sep")
93 return 8
94 if(month == "Oct")
95 return 9
96 if(month == "Nov")
97 return 10
98 if(month == "Dec")
99 return 11
100 return -1
101}
102BEGIN {
103 FS = " "
104 latest=""
105 maxyear = 0
106 maxdate = 0
107 maxmonth = "Jan"
108 maxtime = "00:00:00"
109}
110{
111 # check year first
112 if (maxyear < $6) {
113 date = $2 " " $3 " " $4 " " $5 " " $6
114 file = $1
115 maxyear = $6
116 maxmonth = $3
117 maxdate = $4
118 maxtime = $5
119 }
120 else {
121 if (maxyear == $6) {
122 # then month if year is the same
123 if (cvt_month(maxmonth) < cvt_month($3)) {
124 date = $2 " " $3 " " $4 " " $5 " " $6
125 file = $1
126 maxmonth = $3
127 maxdate = $4
128 maxtime = $5
129 }
130 else {
131 if (cvt_month(maxmonth) == cvt_month($3)) {
132 #then date if month is the same
133 if (maxdate < $4) {
134 date = $2 " " $3 " " $4 " " $5 " " $6
135 file = $1
136 maxdate = $4
137 maxtime = $5
138 }
139 else {
140 if (maxdate == $4) {
141 # then time if date is the same
142 if (maxtime < $5) {
143 date = $2 " " $3 " " $4 " " $5 " " $6
144 file = $1
145 maxtime = $5
146 }
147 }
148 }
149 }
150 }
151 }
152 }
153}
154
155END {
156 # strip leading "./" from filename
157 sub(/^\.\//, "", file)
158 print "The last file updated by CVS was:"
159 print file
160 print "on"
161 print date " GMT"
162}'
163
This page took 0.084905 seconds and 5 git commands to generate.