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  }