tools/buildbot/package.pl
author Nicholas Hastings <skamonkey@gmail.com>
Mon Jul 29 10:03:18 2013 -0400 (2013-07-29)
changeset 3960 d50b36dc6821
parent 3325 47b1a26c996e
child 4273 cfa2b2260f42
permissions -rwxr-xr-x
Updated for latest hl2sdk-dota changes.
     1 #!/usr/bin/perl
     2 
     3 use strict;
     4 use Cwd;
     5 use File::Basename;
     6 use Net::FTP;
     7 
     8 my ($ftp_file, $ftp_host, $ftp_user, $ftp_pass, $ftp_path, $tag);
     9 
    10 $ftp_file = shift;
    11 $tag = shift;
    12 
    13 open(FTP, $ftp_file) or die "Unable to read FTP config file $ftp_file: $!\n";
    14 $ftp_host = <FTP>;
    15 $ftp_user = <FTP>;
    16 $ftp_pass = <FTP>;
    17 $ftp_path = <FTP>;
    18 close(FTP);
    19 
    20 chomp $ftp_host;
    21 chomp $ftp_user;
    22 chomp $ftp_pass;
    23 chomp $ftp_path;
    24 
    25 my ($myself, $path) = fileparse($0);
    26 chdir($path);
    27 
    28 require 'helpers.pm';
    29 
    30 #Switch to the output folder.
    31 chdir(Build::PathFormat('../../../OUTPUT/package'));
    32 
    33 my ($version);
    34 
    35 $version = Build::ProductVersion(Build::PathFormat('../../build/product.version'));
    36 $version =~ s/-dev//g;
    37 $version .= '-hg' . Build::HgRevNum('../../build');
    38 
    39 # Append OS to package version
    40 if ($^O eq "darwin")
    41 {
    42     $version .= '-mac';
    43 }
    44 elsif ($^O =~ /MSWin/)
    45 {
    46     $version .= '-windows';
    47 }
    48 else
    49 {
    50     $version .= '-' . $^O;
    51 }
    52 
    53 if (defined $tag)
    54 {
    55 	$version .= '-' . $tag;
    56 }
    57 
    58 my ($filename);
    59 $filename = 'sourcemod-' . $version;
    60 if ($^O eq "linux")
    61 {
    62     $filename .= '.tar.gz';
    63     print "tar zcvf $filename addons cfg\n";
    64     system("tar zcvf $filename addons cfg");
    65 }
    66 else
    67 {
    68     $filename .= '.zip';
    69     print "zip -r $filename addons cfg\n";
    70     system("zip -r $filename addons cfg");
    71 }
    72 
    73 my ($major,$minor) = ($version =~ /^(\d+)\.(\d+)/);
    74 $ftp_path .= "/$major.$minor";
    75 
    76 my ($ftp);
    77 
    78 $ftp = Net::FTP->new($ftp_host, Debug => 0, Passive => 0) 
    79     or die "Cannot connect to host $ftp_host: $@";
    80 
    81 $ftp->login($ftp_user, $ftp_pass)
    82     or die "Cannot connect to host $ftp_host as $ftp_user: " . $ftp->message . "\n";
    83 
    84 if ($ftp_path ne '')
    85 {
    86     $ftp->cwd($ftp_path)
    87         or die "Cannot change to folder $ftp_path: " . $ftp->message . "\n";
    88 }
    89 
    90 $ftp->binary();
    91 $ftp->put($filename)
    92     or die "Cannot drop file $filename ($ftp_path): " . $ftp->message . "\n";
    93 
    94 $ftp->close();
    95 
    96 print "File sent to drop site as $filename -- build succeeded.\n";
    97 
    98 exit(0);
    99