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