github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/prompts/function/edit.go (about) 1 package functionPrompts 2 3 import ( 4 structureSpec "github.com/taubyte/go-specs/structure" 5 "github.com/taubyte/tau-cli/common" 6 "github.com/taubyte/tau-cli/prompts" 7 "github.com/urfave/cli/v2" 8 ) 9 10 func Edit(ctx *cli.Context, function *structureSpec.Function) (err error) { 11 function.Description = prompts.GetOrAskForADescription(ctx, function.Description) 12 function.Tags = prompts.GetOrAskForTags(ctx, function.Tags) 13 14 function.Timeout, err = prompts.GetOrRequireATimeout(ctx, function.Timeout) 15 if err != nil { 16 return 17 } 18 19 function.Memory, err = prompts.GetOrRequireMemoryAndType(ctx, false, function.Memory) 20 if err != nil { 21 return 22 } 23 24 function.Type, err = GetFunctionType(ctx, function.Type) 25 if err != nil { 26 return 27 } 28 29 switch function.Type { 30 case common.FunctionTypeHttp: 31 err = editHttp(ctx, function) 32 case common.FunctionTypeHttps: 33 function.Secure = true 34 err = editHttp(ctx, function) 35 case common.FunctionTypeP2P: 36 err = editP2P(ctx, function) 37 case common.FunctionTypePubSub: 38 err = editPubSub(ctx, function) 39 } 40 if err != nil { 41 return 42 } 43 44 source, err := prompts.GetOrSelectSource(ctx, function.Source) 45 if err != nil { 46 return 47 } 48 function.Source = source.String() 49 50 function.Call = prompts.GetOrRequireACall(ctx, source, function.Call) 51 52 return 53 }