github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/build/templates.go (about) 1 package build 2 3 const mainBuildTmpl = ` 4 package main 5 6 import ( 7 "context" 8 "log" 9 "os" 10 "time" 11 12 {{if .WithFallthrough -}} 13 appcli "{{.Info.Module.Path}}/cli" 14 {{end -}} 15 16 {{range $imp := .Imports -}} 17 _ "{{$imp}}" 18 {{end -}} 19 20 "github.com/gobuffalo/buffalo-cli/v2/built" 21 "github.com/gobuffalo/buffalo-cli/v2/cli" 22 "github.com/gobuffalo/buffalo/runtime" 23 ) 24 25 func main() { 26 err := func() error { 27 cb, err := cli.New() 28 if err != nil { 29 return err 30 } 31 32 b := &built.App{ 33 Plugger: cb, 34 BuildTime: {{.BuildTime}}, 35 BuildVersion: {{.BuildVersion}}, 36 {{if .WithFallthrough -}} 37 Fallthrough: appcli.Buffalo, 38 {{else -}} 39 Fallthrough: cb.Main, 40 {{end -}} 41 OriginalMain: originalMain, 42 } 43 44 if err := setBuildInfo(b); err != nil { 45 return err 46 } 47 48 ctx := context.Background() 49 pwd, err := os.Getwd() 50 if err != nil { 51 return err 52 } 53 return b.Main(ctx, pwd, os.Args[1:]) 54 }() 55 56 if err != nil { 57 log.Fatal(err) 58 } 59 } 60 61 func setBuildInfo(b *built.App) error { 62 t, err := time.Parse(time.RFC3339, b.BuildTime) 63 if err != nil { 64 t = time.Now() 65 } 66 runtime.SetBuild(runtime.BuildInfo{ 67 Version: b.BuildVersion, 68 Time: t, 69 }) 70 return nil 71 } 72 `