17
17
18
18
my $channelName = $ARGV [0];
19
19
my $releaseUrl = $ARGV [1];
20
+ my $useAWS = ($ENV {' AWS_DISABLE' } or " " ) eq " 1" ;
20
21
21
22
die " Usage: $0 CHANNEL-NAME RELEASE-URL\n " unless defined $channelName && defined $releaseUrl ;
22
23
31
32
32
33
$ENV {' GIT_DIR' } = " /home/hydra-mirror/nixpkgs-channels" ;
33
34
35
+ my $bucket ;
36
+ if ($useAWS ) {
37
+ # S3 setup.
38
+ my $aws_access_key_id = $ENV {' AWS_ACCESS_KEY_ID' } or die ;
39
+ my $aws_secret_access_key = $ENV {' AWS_SECRET_ACCESS_KEY' } or die ;
34
40
35
- # S3 setup.
36
- my $aws_access_key_id = $ENV {' AWS_ACCESS_KEY_ID' } or die ;
37
- my $aws_secret_access_key = $ENV {' AWS_SECRET_ACCESS_KEY' } or die ;
41
+ my $s3 = Net::Amazon::S3-> new(
42
+ { aws_access_key_id => $aws_access_key_id ,
43
+ aws_secret_access_key => $aws_secret_access_key ,
44
+ retry => 1,
45
+ host => " s3-eu-west-1.amazonaws.com" ,
46
+ });
38
47
39
- my $s3 = Net::Amazon::S3-> new(
40
- { aws_access_key_id => $aws_access_key_id ,
41
- aws_secret_access_key => $aws_secret_access_key ,
42
- retry => 1,
43
- host => " s3-eu-west-1.amazonaws.com" ,
44
- });
45
-
46
- my $bucket = $s3 -> bucket($bucketName ) or die ;
48
+ $bucket = $s3 -> bucket($bucketName ) or die ;
49
+ }
47
50
48
51
49
52
sub fetch {
@@ -80,7 +83,7 @@ sub fetch {
80
83
die " channel would go back in time from $curRelease to $releaseName , bailing out\n " if $d == 1;
81
84
}
82
85
83
- if ($bucket -> head_key(" $releasePrefix " )) {
86
+ if ($useAWS && $ bucket-> head_key(" $releasePrefix " )) {
84
87
print STDERR " release already exists\n " ;
85
88
} else {
86
89
my $tmpDir = " /data/releases/tmp/release-$channelName /$releaseName " ;
@@ -175,7 +178,7 @@ sub fetch {
175
178
my $basename = basename $fn ;
176
179
my $key = " $releasePrefix /" . $basename ;
177
180
178
- unless ( defined $bucket -> head_key($key )) {
181
+ if ( $useAWS && ! ( defined $bucket -> head_key($key ) )) {
179
182
print STDERR " mirroring $fn to s3://$bucketName /$key ...\n " ;
180
183
$bucket -> add_key_filename(
181
184
$key , $fn ,
@@ -196,11 +199,13 @@ sub fetch {
196
199
197
200
$html .= " </tbody></table></body></html>" ;
198
201
199
- $bucket -> add_key($releasePrefix , $html ,
200
- { content_type => " text/html" })
201
- or die $bucket -> err . " : " . $bucket -> errstr;
202
+ if ($useAWS ) {
203
+ $bucket -> add_key($releasePrefix , $html ,
204
+ { content_type => " text/html" })
205
+ or die $bucket -> err . " : " . $bucket -> errstr;
202
206
203
- File::Path::remove_tree($tmpDir );
207
+ File::Path::remove_tree($tmpDir );
208
+ }
204
209
}
205
210
206
211
# Prevent concurrent writes to the channels directory.
0 commit comments