diff --git a/cmd/upload/upload.go b/cmd/upload/upload.go index 4ed7e7d466..4875fe1b26 100644 --- a/cmd/upload/upload.go +++ b/cmd/upload/upload.go @@ -9,7 +9,6 @@ package main import ( - "archive/tar" "bytes" "compress/gzip" "context" @@ -20,7 +19,6 @@ import ( "log" "net/http" "os" - "regexp" "strings" "cloud.google.com/go/storage" @@ -36,18 +34,9 @@ var ( extraEnv = flag.String("env", "", "comma-separated list of addition KEY=val environment pairs to include in build environment when building a target to upload") ) -// to match uploads to e.g. https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz. -var go14BootstrapRx = regexp.MustCompile(`^go1\.4-bootstrap-20\d{6}\.tar\.gz$`) - func main() { flag.Usage = func() { - fmt.Fprintf(os.Stderr, `Usage: upload [flags] - -If is of the form "golang/go1.4-bootstrap-20yymmdd.tar.gz", -then the current release-branch.go1.4 is uploaded from Gerrit, with each -tar entry filename beginning with the prefix "go/". - -`) + fmt.Fprintf(os.Stderr, "Usage: upload [flags] bucket/object\n") flag.PrintDefaults() } flag.Parse() @@ -65,17 +54,6 @@ tar entry filename beginning with the prefix "go/". } bucket, object := args[0], args[1] - // Special support for auto-tarring up Go 1.4 tarballs from the 1.4 release branch. - is14Src := bucket == "golang" && go14BootstrapRx.MatchString(object) - if is14Src { - if *file != "-" { - log.Fatalf("invalid use of -file with Go 1.4 tarball %v", object) - } - *doGzip = true - *public = true - *cacheable = true - } - if *doGzip && !strings.HasSuffix(object, ".gz") { log.Fatalf("-gzip flag requires object ending in .gz") } @@ -94,15 +72,7 @@ tar entry filename beginning with the prefix "go/". log.Fatalf("storage.NewClient: %v", err) } - if is14Src { - _, err := storageClient.Bucket(bucket).Object(object).Attrs(context.Background()) - if err != storage.ErrObjectNotExist { - if err == nil { - log.Fatalf("object %v already exists; refusing to overwrite.", object) - } - log.Fatalf("error checking for %v: %v", object, err) - } - } else if alreadyUploaded(storageClient, bucket, object) { + if alreadyUploaded(storageClient, bucket, object) { if *verbose { log.Printf("gs://%s/%s up-to-date", bucket, object) } @@ -123,8 +93,6 @@ tar entry filename beginning with the prefix "go/". } var content io.Reader switch { - case is14Src: - content = generate14Tarfile() case *file == "-": content = os.Stdin default: @@ -218,57 +186,3 @@ func alreadyUploaded(storageClient *storage.Client, bucket, object string) bool } return bytes.Equal(m5.Sum(nil), o.MD5) } - -// generate14Tarfile downloads the release-branch.go1.4 release branch -// tarball and returns it uncompressed, with the "go/" prefix before -// each tar header's filename. -func generate14Tarfile() io.Reader { - const tarURL = "https://go.googlesource.com/go/+archive/release-branch.go1.4.tar.gz" - res, err := http.Get(tarURL) - if err != nil { - log.Fatal(err) - } - if res.StatusCode != 200 { - log.Fatalf("%v: %v", tarURL, res.Status) - } - if got, want := res.Header.Get("Content-Type"), "application/x-gzip"; got != want { - log.Fatalf("%v: response Content-Type = %q; expected %q", tarURL, got, want) - } - - var out bytes.Buffer // output tar (not gzipped) - - tw := tar.NewWriter(&out) - - zr, err := gzip.NewReader(res.Body) - if err != nil { - log.Fatal(err) - } - tr := tar.NewReader(zr) - - for { - hdr, err := tr.Next() - if err == io.EOF { - break - } - if err != nil { - log.Fatal(err) - } - switch hdr.Typeflag { - case tar.TypeReg, tar.TypeRegA, tar.TypeSymlink, tar.TypeDir: - // Accept these. - default: - continue - } - hdr.Name = "go/" + hdr.Name - if err := tw.WriteHeader(hdr); err != nil { - log.Fatalf("WriteHeader: %v", err) - } - if _, err := io.Copy(tw, tr); err != nil { - log.Fatalf("tar copying %v: %v", hdr.Name, err) - } - } - if err := tw.Close(); err != nil { - log.Fatal(err) - } - return &out -}