Revision: | 1.5.2.1 |
Committed: | Fri Apr 7 08:22:53 2000 UTC (25 years, 1 month ago) by williamc |
Content type: | text/plain |
Branch: | V0_9branch |
CVS Tags: | V0_14_0, V0_12_12_4, V0_12_12_3, V0_13_3, V0_13_2, V0_12_12_2, V0_12_12_1, V0_12_12_0, PlayGround_0, V0_13_1, V0_13_0, V0_12_12, V0_12_11, V0_12_9b, V0_12_10, V0_12_9, V0_12_8, V0_12_7, V0_12_6, V0_12_5, V0_12_4, V0_12_3, V0_12_2, V0_12_1, V0_12_0, V0_11_4, V0_11_3, V0_11_2, V0_11_1, V0_11_0 |
Branch point for: | HPWbranch |
Changes since 1.5: | +25 -1 lines |
Log Message: | Add dated function |
# | Content |
---|---|
1 | # |
2 | # Utility Routines for the SCRAM tools |
3 | # |
4 | # Interface |
5 | # |
6 | # dated(testfile,@dependencies) : returns 1 if testfile is older than any of its |
7 | # dependencies or does not exist |
8 | |
9 | package SCRAMUtils; |
10 | require 5.001; |
11 | require Exporter; |
12 | @ISA = qw(Exporter); |
13 | @EXPORT = qw(checkfile updatelookup dated); |
14 | use Carp; |
15 | |
16 | sub dated { |
17 | my $testfile=shift; |
18 | my @files=@_; |
19 | |
20 | my $rv=0; |
21 | if ( -f $testfile ) { |
22 | my $time=(stat($testfile))[9]; |
23 | foreach $file ( @files ) { |
24 | if ( -f $file ) { |
25 | if ( (stat($file))[9] > $time ) { |
26 | $rv=1; |
27 | print "$testfile is out of date relative to $file\n"; |
28 | } |
29 | } |
30 | } |
31 | } |
32 | else { $rv=1; } |
33 | return $rv; |
34 | } |
35 | |
36 | sub checkfile { |
37 | my $filename=shift; |
38 | my $thisfile=""; |
39 | $thisfile=$ENV{LOCALTOP}."/".$filename; |
40 | return $thisfile, if ( -e $thisfile ); |
41 | $thisfile=$ENV{RELEASETOP}."/".$filename; |
42 | return $thisfile, if ( -e $thisfile ); |
43 | return ""; |
44 | } |
45 | |
46 | # |
47 | # Replace or add an entry in a hashing file |
48 | # |
49 | sub updatelookup { |
50 | my $filename=shift; |
51 | my $key=shift; |
52 | my $rest=shift; |
53 | my $update=0; |
54 | use File::Copy; |
55 | |
56 | open ( SCRAMWORK, ">$filename.wk" ) or |
57 | croak "Unable to open $filename.wk ".$!."\n"; |
58 | open ( SCRAMUPDATEFILE, $filename ); |
59 | print "Searching for ".$key."\n"; |
60 | while ( <SCRAMUPDATEFILE> ) { |
61 | if ( $_=~/^\Q$key\E/o ) { |
62 | $update=1; |
63 | print SCRAMWORK $key.$rest."\n"; |
64 | } |
65 | else { |
66 | print SCRAMWORK $_; |
67 | } |
68 | } |
69 | close SCRAMUPDATEFILE; |
70 | if ( $update==0 ) { |
71 | print SCRAMWORK $key.$rest."\n"; |
72 | } |
73 | close SCRAMWORK; |
74 | copy "$filename.wk", $filename or croak "Unable to update file " |
75 | ."$filename $!\n"; |
76 | |
77 | } |