diff -r 85578ba0aa08 -r be14ecca790f bldsystemtools/commonbldutils/BuildExpiry.pl --- a/bldsystemtools/commonbldutils/BuildExpiry.pl Fri Apr 16 16:10:01 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# Script to navigate through the builds and check for the expiry time -# -# - -use strict; -use FindBin; # for FindBin::Bin -use Getopt::Long; -use File::Path; - -# For Date calculations -use lib "$FindBin::Bin/../tools/build/lib"; # For running in source -use Date::Manip; - -# Set TimeZone because Date:Manip needs it set and then tell it to IGNORE the TimeZone -&Date_Init("TZ=GMT","ConvTZ=IGNORE"); - -# Process the commandline -my ( $iPath, $iPreview, $iLogPath ) = ProcessCommandLine(); - -# Open the output logfile if needed -if ( $iLogPath && !$iPreview ) -{ - # Redirect both STDOUT and STDERR to the logfile - open (STDOUT, ">>$iLogPath") or die ("ERROR: Unable to open file \"$iLogPath\" for writing: $!"); - open (STDERR, ">&STDOUT") or die ("ERROR: Unable to redirect STDERR to STDOUT: $!"); - - # Turn off buffering for each file handle to preserve ordering - select((select(STDOUT), $|=1)[0]); - select((select(STDERR), $|=1)[0]); -} - -# Get today's date -my $timestamp = &UnixDate("today","%Y-%m-%d"); - -# Open the published path and get an array of build directories there -opendir (DIRS, $iPath); -my @dirs = readdir(DIRS); -closedir(DIRS); -chomp @dirs; - -my @build_dirs; -foreach my $dir (@dirs) -{ - if (( -d "$iPath\\$dir" ) && ( $dir =~ /^\d{5}/ )) - { - # We have found a build directory - push @build_dirs, "$iPath\\$dir"; - } -} - -# Go through each build directory looking for expiry files -foreach my $dir (@build_dirs) -{ - &ProcessDir($dir); -} - -sub ProcessDir -{ - my ($dir) = @_; - - opendir(DIR, $dir); - my @expirys = readdir(DIR); - closedir(DIR); - chomp @expirys; - - foreach my $entry (@expirys) - { - next if (($entry eq ".") or ($entry eq "..")); - &ProcessDir("$dir\\$entry") if (-d "$dir\\$entry"); - next if ((!-f "$dir\\$entry") or ($entry !~ /^(\d+)_(\d+)_(\d+).expiry$/i)); - - # We have found an expiry file so extract the expiry date - my ($year, $month, $day) = ($1, $2, $3); - - my $delta = &DateCalc("$year-$month-$day","today"); - if ( &Delta_Format($delta,'0',"%dt") > 0) - { - # This build directory has expired - print "$timestamp: Removing directory \"$dir\" (Expired $year-$month-$day)\n"; - &RemoveDirectory($dir) if (!$iPreview); - - # Removal of this build directory is complete, so move onto the next one - last; - } - } -} - -sub RemoveDirectory() -{ - my $dir = shift; - - my $temp = rmtree($dir); - print "$temp file(s) removed.\n"; - - return if ( !-d $dir ); - - # Directory removal has failed - warn "WARNING: Directory \"$dir\" could not be removed.\n"; -} - - -# End of script - -sub ProcessCommandLine { - my ($iHelp, $iPath, $iPreview,$iLogPath); - GetOptions('h' => \$iHelp, 'p=s' => \$iPath, 'n' => \$iPreview,, 'l=s' => \$iLogPath); - - if ( ($iHelp) || (!defined $iPath) ) - { - Usage(); - } - else - { - return( $iPath, $iPreview, $iLogPath ); - }; -} - -# Usage -# -# Output Usage Information. -# - -sub Usage { - print <