blob: 0b25efb8a6169ed547aed9f1fa058112e680110b [file] [log] [blame]
:
eval 'exec perl -wS $0 ${1+"$@"}'
if 0;
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
use strict;
use Cwd;
#### module lookup
my @lib_dirs;
BEGIN {
if ( !defined($ENV{SOLARENV}) ) {
die "No environment found (environment variable SOLARENV is undefined)";
}
push(@lib_dirs, "$ENV{SOLARENV}/bin/modules");
}
use lib (@lib_dirs);
use Cws;
# Prototypes
sub getMinor($);
sub getCwsWorkStamp();
my $workstamp = $ENV{'WORK_STAMP'};
my $solenv= $ENV{'SOLARENV'};
my $cwsWorkStamp = getCwsWorkStamp();
my $minor = getMinor($cwsWorkStamp);
my $oldWorkStamp = $workstamp."_".$minor;
my $svndiff="svn diff --summarize --old=svn://svn.services.openoffice.org/ooo/tags/".$oldWorkStamp." --new=svn://svn.services.openoffice.org/ooo/cws/".$cwsWorkStamp;
my @diff = `$svndiff`;
my @modules;
foreach(@diff)
{
if (/.*svn:\/\/svn.services.openoffice.org.*/)
{
$_ =~ /.*$oldWorkStamp\/(\w*)/;
my $newModule=$1;
if (defined($newModule))
{
if ( ! grep(/$newModule/,@modules))
{
push(@modules, $newModule);
}
}
}
}
foreach(@modules)
{
print "$_\n";
}
exit(0);
sub getMinor($)
{
my $workst = shift;
my $min="";
if ( ! defined($ENV{'UPDMINOR'}))
{
my $cws = Cws->new();
$cws->child($workst);
$cws->master($ENV{'WORK_STAMP'});
my $masterws = $cws->master();
my $childws = $cws->child();
# check if we got a valid child workspace
my $id = $cws->eis_id();
if ( !$id )
{
print("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.\n");
exit(1);
}
my @milestones = $cws->milestone();
foreach (@milestones) {
if ( defined($_) )
{
$min=$_;
}
}
}
else
{
$min = $ENV{'UPDMINOR'};
}
chomp($min);
return $min;
}
sub getCwsWorkStamp()
{
my $cwsWorkSt="";
if ( ! defined($ENV{'CWS_WORK_STAMP'}))
{
my $currPath= cwd;
chdir($ENV{'SOLARENV'});
my @info = `svn info`;
foreach(@info)
{
if ( /URL:.*/ )
{
# URL: svn+ssh://svn@svn.services.openoffice.org/ooo/cws/qadev37/solenv
$_ =
~ /.*svn.services.openoffice.org(.*\/(.*))\/\w*/;
$cwsWorkSt=$2; #qadev37
}
}
}
else
{
$cwsWorkSt = $ENV{'CWS_WORK_STAMP'};
}
return $cwsWorkSt
}