|
|
@@ -503,6 +503,10 @@ func buildZip(target target) {
|
|
|
|
|
|
build(target, tags)
|
|
|
|
|
|
+ if goos == "windows" {
|
|
|
+ windowsCodesign(target.BinaryName())
|
|
|
+ }
|
|
|
+
|
|
|
for i := range target.archiveFiles {
|
|
|
target.archiveFiles[i].src = strings.Replace(target.archiveFiles[i].src, "{{binary}}", target.BinaryName(), 1)
|
|
|
target.archiveFiles[i].dst = strings.Replace(target.archiveFiles[i].dst, "{{binary}}", target.BinaryName(), 1)
|
|
|
@@ -1092,6 +1096,31 @@ func macosCodesign(file string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func windowsCodesign(file string) {
|
|
|
+ st := "signtool.exe"
|
|
|
+ args := []string{"sign", "/fd", "sha256"}
|
|
|
+ if path := os.Getenv("CODESIGN_SIGNTOOL"); path != "" {
|
|
|
+ st = path
|
|
|
+ }
|
|
|
+ if f := os.Getenv("CODESIGN_CERTIFICATE_FILE"); f != "" {
|
|
|
+ args = append(args, "/f", f)
|
|
|
+ }
|
|
|
+ if p := os.Getenv("CODESIGN_CERTIFICATE_PASSWORD"); p != "" {
|
|
|
+ args = append(args, "/p", p)
|
|
|
+ }
|
|
|
+ if tr := os.Getenv("CODESIGN_TIMESTAMP_SERVER"); tr != "" {
|
|
|
+ args = append(args, "/tr", tr, "/td", "sha256")
|
|
|
+ }
|
|
|
+ args = append(args, file)
|
|
|
+
|
|
|
+ bs, err := runError(st, args...)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("Codesign: signing failed:", string(bs))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ log.Println("Codesign: successfully signed", file)
|
|
|
+}
|
|
|
+
|
|
|
func metalint() {
|
|
|
lazyRebuildAssets()
|
|
|
runPrint("go", "test", "-run", "Metalint", "./meta")
|