MCPcopy
hub / github.com/cloudfoundry/cli / executionWrapper

Method executionWrapper

util/command_parser/command_parser.go:55–93  ·  view source on GitHub ↗
(cmd flags.Commander, args []string)

Source from the content-addressed store, hash-verified

53}
54
55func (p *CommandParser) executionWrapper(cmd flags.Commander, args []string) error {
56 cfConfig := p.Config
57 cfConfig.Flags = configv3.FlagOverride{
58 Verbose: common.Commands.VerboseOrVersion,
59 }
60 defer p.UI.FlushDeferred()
61
62 err := preventExtraArgs(args)
63 if err != nil {
64 return p.handleError(err)
65 }
66
67 err = cfConfig.CreatePluginHome()
68 if err != nil {
69 return p.handleError(err)
70 }
71
72 defer func() {
73 configWriteErr := cfConfig.WriteConfig()
74 if configWriteErr != nil {
75 fmt.Fprintf(os.Stderr, "Error writing config: %s", configWriteErr.Error())
76 }
77 }()
78
79 if extendedCmd, ok := cmd.(command.ExtendedCommander); ok {
80 log.SetOutput(os.Stderr)
81 log.SetLevel(log.Level(cfConfig.LogLevel()))
82
83 err = extendedCmd.Setup(cfConfig, p.UI)
84 if err != nil {
85 return p.handleError(err)
86 }
87
88 err = extendedCmd.Execute(args)
89 return p.handleError(err)
90 }
91
92 return fmt.Errorf("command does not conform to ExtendedCommander")
93}
94
95func (p *CommandParser) handleError(passedErr error) error {
96 if passedErr == nil {

Callers

nothing calls this directly

Calls 9

handleErrorMethod · 0.95
preventExtraArgsFunction · 0.85
CreatePluginHomeMethod · 0.80
LogLevelMethod · 0.80
FlushDeferredMethod · 0.65
WriteConfigMethod · 0.65
ErrorMethod · 0.65
SetupMethod · 0.65
ExecuteMethod · 0.65

Tested by

no test coverage detected