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