ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Utilities/SCRAMUtils.pm
Revision: 1.10
Committed: Wed Feb 15 17:14:18 2006 UTC (19 years, 2 months ago) by sashby
Content type: text/plain
Branch: MAIN
CVS Tags: V1_1_7, V1_1_6, V1_1_5, V1_2_0-cand3, V1_2_0-cand2, V1_2_0-cand1, V1_1_4, V1_1_3, V1_1_2, V1_1_0_reltag8, V1_1_0_reltag7, V1_1_0_reltag6, V1_1_1, V1_1_0_reltag5, V1_1_0_reltag4, V1_1_0_reltag3, V1_1_0_reltag2, V1_1_0_reltag1, V1_1_0_reltag, V1_0_3-p4, V1_1_0_cand3, V1_1_0_cand2, V1_1_0_cand1, HEAD_SM_071214, forV1_1_0, v103_xml_071106, V1_0_3-p3, V1_0_3-p2, V1_1_0, v110p1, V110p6, V110p5, V110p4, V110p3, before110xmlBRmerge, V110p2, V110p1, V1_0_3-p1, V1_0_3
Branch point for: forBinLess_SCRAM, HEAD_BRANCH_SM_071214, v200branch, v103_with_xml
Changes since 1.9: +2 -2 lines
Log Message:
Download works properly again...

File Contents

# 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 local $_;
56 use FileHandle;
57 my $fhw=FileHandle->new();
58 my $fh=FileHandle->new();
59 open ( $fhw, ">".$filename.".wk" ) ||
60 die "Unable to open $filename.wk ".$!."\n";
61 $fh->open($filename);
62 #print "Searching for ".$key."\n";
63 while ( <$fh> ) {
64 if ( $_=~/^\Q$key\E/o ) {
65 $update=1;
66 print $fhw $key.$rest."\n";
67 }
68 else {
69 print $fhw $_;
70 }
71 }
72 undef $fh;
73 if ( $update==0 ) {
74 print $fhw $key.$rest."\n";
75 }
76 undef $fhw;
77 copy "$filename.wk", $filename or croak "Unable to update file "
78 ."$filename $!\n";
79 }