cgal/Maintenance/release_building/create_release_page

150 lines
3.9 KiB
Perl
Executable File

#!/sw/bin/perl
#use strict
#Checking for correct usage
sub usage()
{
print STDERR "usage: $0 versionfile1 versionfile2\n";
print STDERR "where versionfile1 and versionfile2 are filenames like\n";
print STDERR "directory/versions_CGAL-3.4-I-28.\n";
print STDERR "The order of the two version files is not important.\n\n";
}
if ($#ARGV != 1) {
usage();
die "\n";
}
my $scripts_dir= "/projects/CGAL/admin_scripts/";
my $data_dir= "${scripts_dir}DATA/";
my $testsuite_dir = '/users/www/CGAL/Members/Develop/testsuite';
my $new_version;
my $old_version;
my ($v1,$v2,$v3,$u1,$u2,$u3);
my $versionv=shift or die;
if ( !(($v1,$v2,$v3)= ($versionv =~ /versions_CGAL-(\d+)\.(\d+)-I-(\d+)$/)) ) {
usage();
die "Invalid first version file with name $versionv\n";
}
my $versionu=shift or die;
if ( !(($u1,$u2,$u3)= ($versionu =~ /versions_CGAL-(\d+)\.(\d+)-I-(\d+)$/) ) ) {
usage();
die "Invalid second version file with name $versionu\n";
}
my $swap_versions = 0;
if ($v1 == $u1 && $v2 == $u2 && $v3 == $u3) {
die "Versions are the same ($v1-$v2-$v3\n)";
}
if ($u1 > $v1 || ($u1 == $v1 && ($u2 > $v2 || ($u2 == $v2 && $u3 > $v3))) ) {
$swap_versions = 1;
}
die "File $versionv does not exist or is not readable" if (! -r $versionv );
die "File $versionu does not exist or is not readable" if (! -r $versionu );
die "No write permission in $data_dir" if (! -w $data_dir);
umask(02);
# end of checking of input
my %new_versions;
my %old_versions;
unlink "${data_dir}version_info",
"${data_dir}new_versions",
"${data_dir}new_packages",
"${data_dir}removed_packages",
"${data_dir}latest_versions",
"${data_dir}version_info";
open(VERSION_INFO, ">${data_dir}version_info");
if ($swap_versions) {
$new_version = "CGAL-${u1}.${u2}-I-${u3}";
$old_version = "CGAL-${v1}.${v2}-I-${v3}";
print VERSION_INFO "CGAL-${u1}.${u2}-I-${u3} ";
print VERSION_INFO "CGAL-${v1}.${v2}-I-${v3}\n";
open(NEW_VERSIONS,"<${versionu}") or die;
open(OLD_VERSIONS,"<$versionv") or die;
} else {
$old_version = "CGAL-${u1}.${u2}-I-${u3}";
$new_version = "CGAL-${v1}.${v2}-I-${v3}";
print VERSION_INFO "CGAL-${v1}.${v2}-I-${v3} ";
print VERSION_INFO "CGAL-${u1}.${u2}-I-${u3}\n";
open(NEW_VERSIONS,"<$versionv") or die;
open(OLD_VERSIONS,"<$versionu") or die;
}
close VERSION_INFO or die;
open(UPDATED,">${data_dir}new_versions") or die;
system('chgrp','cgal',"${data_dir}new_versions");
open(NEW_PACKAGES,">${data_dir}new_packages") or die;
system('chgrp','cgal',"${data_dir}new_packages");
open(DELETED,">${data_dir}removed_packages") or die;
system('chgrp','cgal',"${data_dir}removed_packages");
open(FORMATTED_VERSIONS,">${data_dir}latest_versions") or die;
system('chgrp','cgal',"${data_dir}latest_versions");
while(<OLD_VERSIONS>) {
if (m/^\s*(.*?)\s*:\s*(.*?)\s*$/) {
$old_versions{$1}=$2;
}
}
close OLD_VERSIONS or die;
my $pckge='aapje';
my $vrsion;
format FORMATTED_VERSIONS=
@<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<
$pckge, $vrsion
.
while(<NEW_VERSIONS>) {
if (m/^\s*(.*?)\s*:\s*(.*?)\s*$/) {
($pckge,$vrsion) = ($1,$2);
write FORMATTED_VERSIONS;
$new_versions{$1}=$2;
}
}
close NEW_VERSIONS or die;
my ($key, $value);
while (($key,$value) = each %new_versions) {
if (exists $old_versions{$key} ) {
if ( $value ne $old_versions{$key} ) {
print UPDATED "$key\n";
}
} else {
print NEW_PACKAGES "$key\n";
}
}
while (($key,$value) = each %old_versions) {
if (!exists $new_versions{$key} ) {
print DELETED "$key\n";
}
}
close(UPDATED) or die;
close(NEW_PACKAGES) or die;
close(DELETED) or die;
close(FORMATTED_VERSIONS) or die;
system("${scripts_dir}print_release_page");
chdir($testsuite_dir);
system("echo","./create_testresult_page", '-p', $old_version, $new_version);
system("./create_testresult_page", '-p', $old_version, $new_version);