This is the MOM5 component integrated in the IOW earth-system model.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.1 KiB

#!/usr/bin/perl
#Contact: arl, pjk
#Usage: list_files_with_tag tagname
# Returns list of files under CVS control, relative to current
# directory, which can be updated or checked out with the tag tagname.
#Modified to also list files not currently checked out (arl, 4/2002)
#Version: $Id: list_files_with_tag,v 1.1.2.1 2013/12/18 17:47:54 Niki.Zadeh Exp $
#test that a tagname was given as an argument
if( "$#ARGV" ne "0" ) {
print "\nUsage: list_files_with_tag tagname\n\n";
print " Returns list of files under CVS control, relative to current\n";
print " directory, which can be updated or checked out with the tag tagname.\n\n";
exit;
}
$tag = @ARGV[0];
#use cvs status on files in the current directory to determine which
#have the given tag. This includes those files which have been deleted
#on the branch tag. Then parse the output into %files.
@cvsstatus = `cvs status -v 2>&1`;
$i = 0;
while($i <= $#cvsstatus) {
if( $cvsstatus[$i] =~ /cvs status: Examining (\S+)/ ) {
$thisdir = $1;
}
elsif( $cvsstatus[$i] =~ /^File: \w/ ) {
@thisline = split ' ',$cvsstatus[$i];
$currentfile = $thisline[1];
}
elsif( $cvsstatus[$i] =~ /Existing Tags/ ) {
#skip a line
$i++;
#Each tag line is of the form tag (branch/revision...)
while ($cvsstatus[$i] =~ s/\(.+\)//g) {
#remove blanks
$cvsstatus[$i] =~ s/\s+//g;
#create hash of files (unique list). Don't print "./" in front of files.
if ($tag =~ /^$cvsstatus[$i]$/) {
if( "$thisdir" eq "." ) {
$files{"$currentfile"} = 1;
}
else {
$files{"$thisdir/$currentfile"} = 1;
}
}
$i++;
}
}
$i++;
}
#Add list of files that would be checked out with this tag.
#This will include new files not currently checked out.
@cvsupdate = `cvs update -p -d -r $tag 2>&1`;
$i = 0;
while($i <= $#cvsupdate ) {
if( $cvsupdate[$i] =~ /Checking out/ ) {
@line = split(' ', $cvsupdate[$i]);
$files{"$line[2]"} = 1;
}
$i++;
}
@unique_files = sort(keys(%files));
if( @unique_files ) {
foreach $file (@unique_files) {
print "$file\n";
}
}