releasing/cbrtools/perl/ExportRel
author Zheng Shen <zheng.shen@nokia.com>
Wed, 27 Oct 2010 19:38:12 +0800
changeset 665 2068325a5906
parent 602 3145852acc89
permissions -rw-r--r--
Merge: remove incorrect heard
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     1
#!perl
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     2
# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     3
# All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     4
# This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     6
# which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     8
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
     9
# Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    11
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    12
# Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    13
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    14
# Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    15
# 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    16
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    17
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    18
use strict;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    19
use FindBin;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    20
use lib "$FindBin::Bin";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    21
use Getopt::Long;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    22
use File::Path;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    23
use IniData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    24
use RelTransfer::Export;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    25
use RelData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    26
use CommandController;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    27
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    28
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    29
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    30
# Globals.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    31
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    32
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    33
my $verbose = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    34
my $dummy = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    35
my $force = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    36
my $ftpResume = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    37
my $iniData;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    38
my $commandController;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    39
my $excludeSource = 0;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    40
my %releases; # Data structure changed to a double hash (from a single hash).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    41
              # Top level keys are (case lowered) component names with has reference values.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    42
              # Second level hash keys are versions, with a dummy value.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    43
              # This arrangement makes it possible for a single component to have more than one
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    44
              # version, and to easily delete versions that have already been imported.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    45
my %failedExports;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    46
my %goodExports;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    47
my %alreadyExported;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    48
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    49
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    50
# Main.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    51
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    52
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    53
ProcessCommandLine();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    54
ExportRelease();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    55
PrintReport();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    56
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    57
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    58
# Subs.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    59
#
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    60
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    61
sub ProcessCommandLine {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    62
  Getopt::Long::Configure ("bundling");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    63
  my $help;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    64
  GetOptions("h" => \$help, "v+" => \$verbose, "f" => \$force, "r" => \$ftpResume, "d" => \$dummy, "e" => \$excludeSource);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    65
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    66
  if ($help) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    67
    Usage(0);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    68
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    69
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    70
  if (scalar(@ARGV) == 1) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    71
    if (-f $ARGV[0]) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    72
      open IN, $ARGV[0] or die "Error: Couldn't open $ARGV[0] for reading: $!\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    73
      while (my $line = <IN>) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    74
	chomp $line;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    75
	$line =~ s/^\s*$//;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    76
	$line =~ s/#.*//;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    77
	if ($line eq '') {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    78
	  next; #Nothing left
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    79
	}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    80
	my ($comp, $ver) = split(" ", $line);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    81
	if (defined $comp and defined $ver) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    82
	  $releases{lc($comp)}->{$ver} = 1;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    83
	}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    84
	else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    85
	  print "Error: Invalid file format in $ARGV[0]\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    86
	  Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    87
	}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    88
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    89
      close IN;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    90
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    91
    else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    92
      print "Error: $ARGV[0] is not a file\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    93
      Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    94
    }      
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    95
  }	
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    96
  elsif (scalar(@ARGV) == 2) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    97
    $releases{lc($ARGV[0])}->{$ARGV[1]} = 1;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    98
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
    99
  else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   100
    print "Error: Invalid arguments\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   101
    Usage(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   102
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   103
  $iniData = IniData->New(undef,1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   104
  $commandController = CommandController->New($iniData, 'ExportRel');
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   105
  #if ftp resume option is used override value in reltools.ini
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   106
  if ($ftpResume) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   107
    $iniData->FtpServerSupportsResume(1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   108
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   109
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   110
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   111
sub Usage {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   112
  my $exitCode = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   113
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   114
  Utils::PrintDeathMessage($exitCode, "\nUsage: exportrel [options] (<component> <version>) | (<component_ver_list_file>)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   115
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   116
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   117
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   118
-h  help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   119
-f  force export overwriting if necessary
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   120
-r  use FTP reconnect and resume transfer mode
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   121
-d  dummy run (don't do anything) - assumes -v
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   122
-e  exclude source
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   123
-v  verbose output (-vv very verbose)\n");
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   124
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   125
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   126
sub ExportRelease {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   127
  my $exporter = RelTransfer::Export->New(ini_data => $iniData,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   128
					  force => $force,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   129
					  dummy => $dummy,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   130
					  excludeSource => $excludeSource,
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   131
					  verbose => $verbose);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   132
  #do the export checking for errors
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   133
  foreach my $comp (sort keys %releases) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   134
    foreach my $ver (keys %{$releases{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   135
      my $exported;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   136
      eval {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   137
        GetCorrectVersionNumber($comp, \$ver);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   138
        $exported = $exporter->TransferRelease($comp, $ver);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   139
      };
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   140
      if ($@) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   141
        print $@;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   142
        if ($@ =~ /cannot\s+connect/i) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   143
          print "\nConnection to remote site dropped aborting export\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   144
          last;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   145
        }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   146
        my $error = $@;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   147
        chomp $error;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   148
        $error =~ s/^error: ("?$comp $ver"? )?//i;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   149
        $failedExports{$comp}->{$ver} = $error;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   150
      } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   151
        if ($exported) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   152
          push @{$goodExports{$comp}}, $ver;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   153
        } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   154
          push @{$alreadyExported{$comp}}, $ver;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   155
        }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   156
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   157
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   158
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   159
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   160
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   161
sub GetCorrectVersionNumber {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   162
  #This function changes the version number string of each component to that 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   163
  #stored in its reldata file. This is required because version numbers are case dependent
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   164
  my $comp = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   165
  my $verRef = shift;
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   166
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   167
  my $relData = RelData->Open($iniData, $comp, $$verRef, $verbose);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   168
  my $env = $relData->Environment();
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   169
  $$verRef = $env->{$comp};
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   170
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   171
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   172
sub PrintReport {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   173
  print "\n=========EXPORT SUMMARY==========\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   174
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   175
  my $tableData = [["Component", "Version", "status"]];
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   176
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   177
  foreach my $comp (sort keys %goodExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   178
    foreach my $ver (@{$goodExports{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   179
      push (@$tableData, [$comp, $ver, 'successfully exported']);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   180
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   181
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   182
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   183
  foreach my $comp (sort keys %alreadyExported) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   184
    foreach my $ver (@{$alreadyExported{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   185
      push (@$tableData, [$comp, $ver, 'has already been exported']);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   186
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   187
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   188
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   189
  if (scalar @{$tableData} > 1) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   190
    $iniData->TableFormatter->PrintTable($tableData, 1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   191
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   192
  
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   193
  #handle failed exports
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   194
  if (keys %failedExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   195
    print "\n=========FAILED EXPORTS==========\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   196
    my $failureTableData = [["Component", "Version", "Failure reason"]];
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   197
    foreach my $comp (sort keys %failedExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   198
      foreach my $ver (sort keys %{$failedExports{$comp}}) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   199
        push (@$failureTableData, [$comp, $ver, $failedExports{$comp}->{$ver}]);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   200
      }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   201
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   202
    $iniData->TableFormatter->PrintTable($failureTableData, 1);
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   203
    print "\nError: Unable to export component release successfully\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   204
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   205
  else
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   206
  {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   207
    if (keys %goodExports) {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   208
      print "\nAll releases exported successfully\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   209
    } else {
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   210
      print "\nNothing to do!\n";
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   211
    }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   212
  }
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   213
}
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   214
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   215
__END__
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   216
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   217
=head1 NAME
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   218
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   219
ExportRel - Exports a component release to a remote site.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   220
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   221
=head1 SYNOPSIS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   222
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   223
  exportrel [options] (<component> <version>) | (<component_ver_list_file>)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   224
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   225
options:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   226
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   227
  -h  help
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   228
  -f  force export overwriting if necessary
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   229
  -r  use FTP reconnect and resume transfer mode
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   230
  -d  dummy run (don't do anything) - assumes -v
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   231
  -e  exclude source
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   232
  -v  verbose output (-vv very verbose)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   233
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   234
=head1 DESCRIPTION
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   235
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   236
Takes a C<component> and C<version> number as arguments. Encrypts the release and sends it to the projects shared archive stored on a remote site.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   237
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   238
The name of file containing a list of components and versions maybe passed as an argument to the tool instead of a single component to export multiple releases.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   239
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   240
Using the C<-f> option will force releases to be exported even if they already exist on the remote site (this only applies to components existing in the users export table)
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   241
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   242
If the C<-r> option is used and the FTP connection is dropped during the upload of a release, the tools will automatically reconnect to the FTP site and resume the upload. This feature may not be supported by some FTP servers.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   243
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   244
Using C<-e> option will create a component release without source.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   245
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   246
=head1 KNOWN BUGS
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   247
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   248
None
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   249
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   250
=head1 COPYRIGHT
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   251
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   252
 Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   253
 All rights reserved.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   254
 This component and the accompanying materials are made available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   255
 under the terms of the License "Eclipse Public License v1.0"
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   256
 which accompanies this distribution, and is available
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   257
 at the URL "http://www.eclipse.org/legal/epl-v10.html".
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   258
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   259
 Initial Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   260
 Nokia Corporation - initial contribution.
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   261
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   262
 Contributors:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   263
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   264
 Description:
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   265
 
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   266
3145852acc89 add releasing to new structure
jjkang
parents:
diff changeset
   267
=cut