mirror of https://github.com/CGAL/cgal
150 lines
3.9 KiB
Perl
Executable File
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);
|