github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/application/new.go (about) 1 package application 2 3 import ( 4 "github.com/taubyte/tau-cli/cli/common" 5 "github.com/taubyte/tau-cli/flags" 6 applicationI18n "github.com/taubyte/tau-cli/i18n/application" 7 applicationLib "github.com/taubyte/tau-cli/lib/application" 8 applicationPrompts "github.com/taubyte/tau-cli/prompts/application" 9 applicationTable "github.com/taubyte/tau-cli/table/application" 10 "github.com/urfave/cli/v2" 11 ) 12 13 func (link) New() common.Command { 14 return common.Create( 15 &cli.Command{ 16 Flags: []cli.Flag{ 17 flags.Description, 18 flags.Tags, 19 flags.Yes, 20 }, 21 Action: new, 22 }, 23 ) 24 } 25 26 func new(ctx *cli.Context) error { 27 application, err := applicationPrompts.New(ctx) 28 if err != nil { 29 return err 30 } 31 32 name := application.Name 33 34 confirm := applicationTable.Confirm(ctx, application, applicationPrompts.CreateThis) 35 if confirm { 36 err := applicationLib.New(application) 37 if err != nil { 38 return err 39 } 40 applicationI18n.Created(name) 41 42 err = applicationLib.Select(ctx, name) 43 if err != nil { 44 return err 45 } 46 applicationI18n.Selected(name) 47 48 return nil 49 } 50 51 return nil 52 }