@@ -27,19 +27,24 @@ type Client struct {
2727}
2828
2929// Execute a Github client CLI command.
30- func (c Client ) Execute (ctx context.Context ) ([]byte , error ) {
30+ func (c Client ) Execute (ctx context.Context ) (bytes []byte , err error ) {
3131 buildVersion := metadata .Version
3232 cmdFactory := factory .New (buildVersion )
33- cmd , err := ghroot .NewCmdRoot (cmdFactory , buildVersion , "-" )
34- if err != nil {
35- return nil , errors .Wrap (err , ErrClientFailed )
33+ cmd , gerr := ghroot .NewCmdRoot (cmdFactory , buildVersion , "-" )
34+ if gerr != nil {
35+ err = errors .Join (err , errors .Wrap (gerr , ErrClientFailed ))
36+ return bytes , err
3637 }
3738 cmd .SetArgs (c .Args )
3839 tmpf , terr := os .CreateTemp ("" , "gh-" )
3940 if terr != nil {
40- return nil , errors .Wrap (terr , ErrClientFailed )
41+ err = errors .Join (err , errors .Wrap (terr , ErrClientFailed ))
42+ return bytes , err
4143 }
42- defer os .Remove (tmpf .Name ())
44+ defer func () {
45+ rmerr := os .Remove (tmpf .Name ())
46+ err = errors .Join (err , errors .Wrap (rmerr , ErrClientFailed ))
47+ }()
4348 cmdFactory .IOStreams .Out = tmpf
4449 cmdFactory .IOStreams .ErrOut = os .Stderr
4550 if c .DisableColor {
@@ -55,10 +60,10 @@ func (c Client) Execute(ctx context.Context) ([]byte, error) {
5560 ErrClientFailed )
5661 }
5762 }
58- err = runner ()
63+ err = errors . Join ( err , runner () )
5964 bytes , ferr := os .ReadFile (tmpf .Name ())
6065 if ferr != nil {
61- return nil , errors .Wrap (ferr , ErrClientFailed )
66+ err = errors . Join ( err , errors .Wrap (ferr , ErrClientFailed ) )
6267 }
63- return bytes , errors . Wrap ( err , ErrClientFailed )
68+ return bytes , err
6469}
0 commit comments