github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/application/edit.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) Edit() common.Command {
    14  	return common.Create(
    15  		&cli.Command{
    16  			Flags: []cli.Flag{
    17  				flags.Description,
    18  				flags.Tags,
    19  				flags.Select,
    20  				flags.Yes,
    21  			},
    22  			Action: edit,
    23  		},
    24  	)
    25  }
    26  
    27  func edit(ctx *cli.Context) error {
    28  	// If --select is set we should not check the user's currently selected application
    29  	checkEnv := !ctx.Bool(flags.Select.Name)
    30  
    31  	application, err := applicationPrompts.GetOrSelect(ctx, checkEnv)
    32  	if err != nil {
    33  		return err
    34  	}
    35  
    36  	applicationPrompts.Edit(ctx, application)
    37  
    38  	confirm := applicationTable.Confirm(ctx, application, applicationPrompts.EditThis)
    39  	if confirm {
    40  		err = applicationLib.Set(application)
    41  		if err != nil {
    42  			return err
    43  		}
    44  		applicationI18n.Edited(application.Name)
    45  
    46  		return nil
    47  	}
    48  
    49  	return nil
    50  }