summaryrefslogtreecommitdiff
path: root/TAO/release.pl
blob: 2bbeeb919b099a5b9b1c458dd449b676e995dfd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
$date = `/usr/bin/date +"%a %b %d %T %Y"`;
chop $date;
$VERSION = "VERSION";
$CHANGELOG = "ChangeLog";
$TAO_VERSION = '';
$MODNAME = 'TAO';

sub inplace {
    my($ext, @files) = @_;
    my(@nfiles) = ();
    my($nfile);
    $ext = '~' if ($ext eq '');
    foreach $file (@files) {
	$nfile = $file . $ext;
	if (rename ($file, $nfile)) {
	    push(@nfiles, $nfile);
	}
	else {
	    warn "Unable to rename $files[$i] for in-place editing: $!\n";
	}
    }
    @nfiles;
}

@inplace = inplace('.del', $VERSION, $CHANGELOG);

open (VERSION, $inplace[0])
    || die "Unable to open file $inplace[0] for inplace edit: $!\n";
open (VERSIONOUT, ">$VERSION")
    || die "Unable to open file $VERSION for writing: $!\n";

undef $version_number;
while (<VERSION>) {
    s/(TAO version \d+\.\d+\.)(\d+)/sprintf("$1%d",$2+1)/e;
    ($version_number = $_) =~ s/.*(\d+\.\d+\.\d+).*/$1/ if (!defined($version_number));
    if (s/(, released ).*/$1$date./) {
	($TAO_VERSION = $_) =~ s/^This is //;
    }
    print VERSIONOUT $_;
}

close (VERSIONOUT);
close (VERSION);


$message = $date."  ".$ENV{"SIGNATURE"}."  <".$ENV{"LOGNAME"}."\@cs.wustl.edu>\n\n\t* ".$TAO_VERSION."\n";
$message_printed = 0;

open (CHANGELOG, $inplace[1])
    || die "Unable to open file $inplace[1] for inplace edit: $!\n";
open (CHANGELOGOUT, ">$CHANGELOG")
    || die "Unable to open file $CHANGELOG for writing: $!\n";

while (<CHANGELOG>) {
    print CHANGELOGOUT "$message" if ( ! $message_printed++ );
    print CHANGELOGOUT $_;
}

close (CHANGELOG);
close (CHANGELOGOUT);

# Morph the version number
chop $version_number;
($version_tag = $MODNAME."-".$version_number) =~ s/\./_/g;

$CVSCOM = 'cvs';
$COM = qq/$CVSCOM commit -m'$TAO_VERSION' $VERSION $CHANGELOG && $CVSCOM rtag $version_tag $MODNAME/;
print $COM;
system $COM;

#unlink @inplace;