9
9
package main
10
10
11
11
import (
12
- "archive/tar"
13
12
"bytes"
14
13
"compress/gzip"
15
14
"context"
@@ -20,7 +19,6 @@ import (
20
19
"log"
21
20
"net/http"
22
21
"os"
23
- "regexp"
24
22
"strings"
25
23
26
24
"cloud.google.com/go/storage"
36
34
extraEnv = flag .String ("env" , "" , "comma-separated list of addition KEY=val environment pairs to include in build environment when building a target to upload" )
37
35
)
38
36
39
- // to match uploads to e.g. https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz.
40
- var go14BootstrapRx = regexp .MustCompile (`^go1\.4-bootstrap-20\d{6}\.tar\.gz$` )
41
-
42
37
func main () {
43
38
flag .Usage = func () {
44
- fmt .Fprintf (os .Stderr , `Usage: upload [flags] <bucket/object>
45
-
46
- If <bucket/object> is of the form "golang/go1.4-bootstrap-20yymmdd.tar.gz",
47
- then the current release-branch.go1.4 is uploaded from Gerrit, with each
48
- tar entry filename beginning with the prefix "go/".
49
-
50
- ` )
39
+ fmt .Fprintf (os .Stderr , "Usage: upload [flags] bucket/object\n " )
51
40
flag .PrintDefaults ()
52
41
}
53
42
flag .Parse ()
@@ -65,17 +54,6 @@ tar entry filename beginning with the prefix "go/".
65
54
}
66
55
bucket , object := args [0 ], args [1 ]
67
56
68
- // Special support for auto-tarring up Go 1.4 tarballs from the 1.4 release branch.
69
- is14Src := bucket == "golang" && go14BootstrapRx .MatchString (object )
70
- if is14Src {
71
- if * file != "-" {
72
- log .Fatalf ("invalid use of -file with Go 1.4 tarball %v" , object )
73
- }
74
- * doGzip = true
75
- * public = true
76
- * cacheable = true
77
- }
78
-
79
57
if * doGzip && ! strings .HasSuffix (object , ".gz" ) {
80
58
log .Fatalf ("-gzip flag requires object ending in .gz" )
81
59
}
@@ -94,15 +72,7 @@ tar entry filename beginning with the prefix "go/".
94
72
log .Fatalf ("storage.NewClient: %v" , err )
95
73
}
96
74
97
- if is14Src {
98
- _ , err := storageClient .Bucket (bucket ).Object (object ).Attrs (context .Background ())
99
- if err != storage .ErrObjectNotExist {
100
- if err == nil {
101
- log .Fatalf ("object %v already exists; refusing to overwrite." , object )
102
- }
103
- log .Fatalf ("error checking for %v: %v" , object , err )
104
- }
105
- } else if alreadyUploaded (storageClient , bucket , object ) {
75
+ if alreadyUploaded (storageClient , bucket , object ) {
106
76
if * verbose {
107
77
log .Printf ("gs://%s/%s up-to-date" , bucket , object )
108
78
}
@@ -123,8 +93,6 @@ tar entry filename beginning with the prefix "go/".
123
93
}
124
94
var content io.Reader
125
95
switch {
126
- case is14Src :
127
- content = generate14Tarfile ()
128
96
case * file == "-" :
129
97
content = os .Stdin
130
98
default :
@@ -218,57 +186,3 @@ func alreadyUploaded(storageClient *storage.Client, bucket, object string) bool
218
186
}
219
187
return bytes .Equal (m5 .Sum (nil ), o .MD5 )
220
188
}
221
-
222
- // generate14Tarfile downloads the release-branch.go1.4 release branch
223
- // tarball and returns it uncompressed, with the "go/" prefix before
224
- // each tar header's filename.
225
- func generate14Tarfile () io.Reader {
226
- const tarURL = "https://go.googlesource.com/go/+archive/release-branch.go1.4.tar.gz"
227
- res , err := http .Get (tarURL )
228
- if err != nil {
229
- log .Fatal (err )
230
- }
231
- if res .StatusCode != 200 {
232
- log .Fatalf ("%v: %v" , tarURL , res .Status )
233
- }
234
- if got , want := res .Header .Get ("Content-Type" ), "application/x-gzip" ; got != want {
235
- log .Fatalf ("%v: response Content-Type = %q; expected %q" , tarURL , got , want )
236
- }
237
-
238
- var out bytes.Buffer // output tar (not gzipped)
239
-
240
- tw := tar .NewWriter (& out )
241
-
242
- zr , err := gzip .NewReader (res .Body )
243
- if err != nil {
244
- log .Fatal (err )
245
- }
246
- tr := tar .NewReader (zr )
247
-
248
- for {
249
- hdr , err := tr .Next ()
250
- if err == io .EOF {
251
- break
252
- }
253
- if err != nil {
254
- log .Fatal (err )
255
- }
256
- switch hdr .Typeflag {
257
- case tar .TypeReg , tar .TypeRegA , tar .TypeSymlink , tar .TypeDir :
258
- // Accept these.
259
- default :
260
- continue
261
- }
262
- hdr .Name = "go/" + hdr .Name
263
- if err := tw .WriteHeader (hdr ); err != nil {
264
- log .Fatalf ("WriteHeader: %v" , err )
265
- }
266
- if _ , err := io .Copy (tw , tr ); err != nil {
267
- log .Fatalf ("tar copying %v: %v" , hdr .Name , err )
268
- }
269
- }
270
- if err := tw .Close (); err != nil {
271
- log .Fatal (err )
272
- }
273
- return & out
274
- }
0 commit comments