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  <% } %>