diff -r 22486c9c7b15 -r 378360dbbdba releasing/cbrtools/perl/envsize --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/releasing/cbrtools/perl/envsize Wed Jun 30 11:35:58 2010 +0800 @@ -0,0 +1,167 @@ +#!perl +# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "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: +# +# + +use strict; +use FindBin; +use lib "$FindBin::Bin"; +use Getopt::Long; +use IniData; +use RelData; +use EnvDb; +use Utils; +use CommandController; + + +# +# Globals. +# + +my $verbose = 0; +my $iniData = IniData->New(); +my $commandController = CommandController->New($iniData, 'EnvSize'); +my $comp; +my $ver; +my $quick; +my $force; +my $deltasize = 0; + +# +# Main. +# + +ProcessCommandLine(); + +my $envdb = EnvDb->Open($iniData, $verbose); +$ver = $envdb->Version($comp) if (!$ver); + +EnvSize(); + + +# +# Subs. +# + +sub ProcessCommandLine { + Getopt::Long::Configure ("bundling"); + my $help; + GetOptions("h" => \$help, "v+" => \$verbose, "q" => \$quick, 'f' => \$force, "d" => \$deltasize); + + if ($help) { + Usage(0); + } + + if ($quick && $deltasize) { + die "Error: It is not possible to use the -d and -q flags together\n"; + } + + $comp = shift @ARGV; + unless ($comp) { + die "Error: No component name specified\n"; + } + if (scalar @ARGV == 1) { + $ver = shift @ARGV; + } + elsif (!scalar @ARGV == 0) { + print "Error: Invalid number of arguments\n"; + Usage(1); + } +} + +sub Usage { + my $exitCode = shift; + + Utils::PrintDeathMessage($exitCode, "\nUsage: envsize [options] + +options: + +-h help +-v verbose output (-vv very verbose) +-f (deprecated) +-q quick (don't print size of environment) +-d delta size (only matching versions) + +Note: It is not possible to use the -q and -d flags together.\n"); +} + +sub EnvSize { + print "Size of component zips in local archive: ".$envdb->GetReleaseSize($comp, $ver)." bytes\n"; + print "Size of whole environment zips in local archive: ".$envdb->GetEnvironmentSize($comp, $ver, 0)." bytes\n" if (!$quick && !$deltasize); + print "Size of environment zips in local archive that match the requested version: ".$envdb->GetEnvironmentSize($comp, $ver, $deltasize)." bytes\n" if (!$quick && $deltasize); +} + +__END__ + +=head1 NAME + +EnvSize - Prints the size of the zip files of the component and its environment. + +=head1 SYNOPSIS + + envsize [options] component [version] + +options: + + -h help + -v verbose output (-vv very verbose) + -q quick; only print the size of the component, not its environment + -d delta size; only includes components that match the requested version + +Note: It is not possible to use the C<-q> and C<-d> flags together. + +=head1 DESCRIPTION + +Adds up the size of the zip files of the component. The result is printed, +in bytes. + +Unless you specify the C<-q> flag, it also adds up the sizes of all the +components that make up its environment, and prints that. (This, of course, +includes the component you specify). + +If you specify the C<-d> flag it will add up the sizes of all the components in +the archive that match the version number specified. This is useful if when you +create an environment you use the same version number for all new components, +you can see the size taken up by the components released in the new +environment, and not components which have been re-used. + +The first item of information is also shown in the output of C. + +=head1 STATUS + +Supported. If you find a problem, please report it to us. + +=head1 KNOWN BUGS + +None. + +=head1 COPYRIGHT + + Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). + All rights reserved. + This component and the accompanying materials are made available + under the terms of the License "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: + + +=cut