github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/build/templates/cmd/app/buffalo_build_main.go.plush (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "os/exec" 8 "time" 9 10 _ "<%= opts.PackagePkg %>/a" 11 _ "<%= opts.ActionsPkg %>" 12 <%= if (opts.WithGrifts) { %> 13 _ "<%= opts.GriftsPkg %>" 14 <% } %> 15 <%= if (opts.WithPop) { %> 16 "<%= opts.ModelsPkg %>" 17 "<%= opts.PackagePkg %>/migrations" 18 <% } %> 19 20 "github.com/gobuffalo/buffalo/runtime" 21 "github.com/gobuffalo/grift/grift" 22 <%= if (opts.WithPop) { %> 23 "github.com/gobuffalo/pop/v6" 24 <% } %> 25 ) 26 27 func init() { 28 t, err := time.Parse(time.RFC3339, "<%= buildTime %>") 29 if err != nil { 30 fmt.Println(err) 31 } 32 33 runtime.SetBuild(runtime.BuildInfo{ 34 Version: "<%= buildVersion %>", 35 Time: t, 36 }) 37 } 38 39 func main() { 40 args := os.Args 41 var originalArgs []string 42 for i, arg := range args { 43 if arg == "--" { 44 originalArgs = append([]string{args[0]}, args[i+1:]...) 45 args = args[:i] 46 break 47 } 48 } 49 50 if len(args) == 1 { 51 if len(originalArgs) != 0 { 52 os.Args = originalArgs 53 } 54 originalMain() 55 return 56 } 57 58 c := args[1] 59 switch c { 60 <%= if (opts.WithPop) { %> 61 case "migrate": 62 migrate() 63 <% } %> 64 case "version": 65 printVersion() 66 case "task", "t", "tasks": 67 if len(args) < 3 { 68 log.Fatal("not enough arguments passed to task") 69 } 70 71 c := grift.NewContext(args[2]) 72 if len(args) > 2 { 73 c.Args = args[3:] 74 } 75 76 if err := grift.Run(args[2], c); err != nil { 77 log.Fatal(err) 78 } 79 default: 80 if _, err := exec.LookPath("buffalo"); err != nil { 81 log.Fatal(err) 82 } 83 84 cmd := exec.Command("buffalo", args[1:]...) 85 cmd.Stdin = os.Stdin 86 cmd.Stdout = os.Stdout 87 cmd.Stderr = os.Stderr 88 89 if err := cmd.Run(); err != nil { 90 log.Fatal(err) 91 } 92 } 93 } 94 95 func printVersion() { 96 fmt.Printf("<%= opts.Name.Title() %> version %s\n", runtime.Build()) 97 } 98 99 <%= if (opts.WithPop) { %> 100 func migrate() { 101 box, err := pop.NewMigrationBox(migrations.FS(), models.DB) 102 if err != nil { 103 log.Fatalf("Failed to unpack migrations: %s", err) 104 } 105 106 if err := box.Up(); err != nil { 107 log.Fatalf("Failed to run migrations: %s", err) 108 } 109 } 110 <% } %>