Parcourir la source

build: Let "go generate" create assets

Jakob Borg il y a 7 ans
Parent
commit
ef5ca0c218
5 fichiers modifiés avec 28 ajouts et 6 suppressions
  1. 2 3
      build.go
  2. 1 1
      cmd/strelaypoolsrv/auto/.gitignore
  3. 10 0
      cmd/strelaypoolsrv/auto/doc.go
  4. 2 0
      lib/auto/doc.go
  5. 13 2
      script/genassets.go

+ 2 - 3
build.go

@@ -738,12 +738,11 @@ func listFiles(dir string) []string {
 
 func rebuildAssets() {
 	os.Setenv("SOURCE_DATE_EPOCH", fmt.Sprint(buildStamp()))
-	runPipe("lib/auto/gui.files.go", "go", "run", "script/genassets.go", "gui")
-	runPipe("cmd/strelaypoolsrv/auto/gui.go", "go", "run", "script/genassets.go", "cmd/strelaypoolsrv/gui")
+	runPrint("go", "generate", "github.com/syncthing/syncthing/lib/auto", "github.com/syncthing/syncthing/cmd/strelaypoolsrv/auto")
 }
 
 func lazyRebuildAssets() {
-	if shouldRebuildAssets("lib/auto/gui.files.go", "gui") || shouldRebuildAssets("cmd/strelaypoolsrv/auto/gui.go", "cmd/strelaypoolsrv/auto/gui") {
+	if shouldRebuildAssets("lib/auto/gui.files.go", "gui") || shouldRebuildAssets("cmd/strelaypoolsrv/auto/gui.files.go", "cmd/strelaypoolsrv/auto/gui") {
 		rebuildAssets()
 	}
 }

+ 1 - 1
cmd/strelaypoolsrv/auto/.gitignore

@@ -1 +1 @@
-gui.go
+gui.files.go

+ 10 - 0
cmd/strelaypoolsrv/auto/doc.go

@@ -0,0 +1,10 @@
+// Copyright (C) 2018 The Syncthing Authors.
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this file,
+// You can obtain one at https://mozilla.org/MPL/2.0/.
+
+//go:generate go run ../../../script/genassets.go -o gui.files.go ../gui
+
+// Package auto contains auto generated files for web assets.
+package auto

+ 2 - 0
lib/auto/doc.go

@@ -4,5 +4,7 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this file,
 // You can obtain one at https://mozilla.org/MPL/2.0/.
 
+//go:generate go run ../../script/genassets.go -o gui.files.go ../../gui
+
 // Package auto contains auto generated files for web assets.
 package auto

+ 13 - 2
script/genassets.go

@@ -86,6 +86,7 @@ type templateVars struct {
 }
 
 func main() {
+	outfile := flag.String("o", "", "Name of output file (default stdout)")
 	flag.Parse()
 
 	filepath.Walk(flag.Arg(0), walkerFor(flag.Arg(0)))
@@ -104,7 +105,17 @@ func main() {
 	})
 	bs, err := format.Source(buf.Bytes())
 	if err != nil {
-		panic(err)
+		fmt.Fprintln(os.Stderr, err)
+		os.Exit(1)
 	}
-	os.Stdout.Write(bs)
+
+	out := io.Writer(os.Stdout)
+	if *outfile != "" {
+		out, err = os.Create(*outfile)
+		if err != nil {
+			fmt.Fprintln(os.Stderr, err)
+			os.Exit(1)
+		}
+	}
+	out.Write(bs)
 }