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  `