mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-02-21 09:40:03 +00:00
all: build Windows protoc-gen-go as a .exe in a zip
Add a .exe suffix to the protoc-gen-go Windows binary. Use zip instead of tar for the Windows release archive. Fixes golang/protobuf#1323 Change-Id: If42fa6dfd8b5496148310fa2a3359161f1124229 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/321530 Trust: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
This commit is contained in:
parent
24d799b3c1
commit
50a85913fb
@ -8,6 +8,7 @@ package main
|
||||
|
||||
import (
|
||||
"archive/tar"
|
||||
"archive/zip"
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
"crypto/sha256"
|
||||
@ -392,18 +393,31 @@ func mustHandleFlags(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
out := new(bytes.Buffer)
|
||||
gz, _ := gzip.NewWriterLevel(out, gzip.BestCompression)
|
||||
gz.Comment = fmt.Sprintf("protoc-gen-go VERSION=%v GOOS=%v GOARCH=%v", v, goos, goarch)
|
||||
tw := tar.NewWriter(gz)
|
||||
tw.WriteHeader(&tar.Header{
|
||||
Name: "protoc-gen-go",
|
||||
Mode: int64(0775),
|
||||
Size: int64(len(in)),
|
||||
})
|
||||
tw.Write(in)
|
||||
tw.Close()
|
||||
gz.Close()
|
||||
if err := ioutil.WriteFile(binPath+".tar.gz", out.Bytes(), 0664); err != nil {
|
||||
suffix := ""
|
||||
comment := fmt.Sprintf("protoc-gen-go VERSION=%v GOOS=%v GOARCH=%v", v, goos, goarch)
|
||||
switch goos {
|
||||
case "windows":
|
||||
suffix = ".zip"
|
||||
zw := zip.NewWriter(out)
|
||||
zw.SetComment(comment)
|
||||
fw, _ := zw.Create("protoc-gen-go.exe")
|
||||
fw.Write(in)
|
||||
zw.Close()
|
||||
default:
|
||||
suffix = ".tar.gz"
|
||||
gz, _ := gzip.NewWriterLevel(out, gzip.BestCompression)
|
||||
gz.Comment = comment
|
||||
tw := tar.NewWriter(gz)
|
||||
tw.WriteHeader(&tar.Header{
|
||||
Name: "protoc-gen-go",
|
||||
Mode: int64(0775),
|
||||
Size: int64(len(in)),
|
||||
})
|
||||
tw.Write(in)
|
||||
tw.Close()
|
||||
gz.Close()
|
||||
}
|
||||
if err := ioutil.WriteFile(binPath+suffix, out.Bytes(), 0664); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user