Skip to content

Commit b1e3beb

Browse files
committed
Relax bad cmd handling in subshell
1 parent 238da4e commit b1e3beb

6 files changed

Lines changed: 12 additions & 41 deletions

File tree

internal/subshell/bash/bash.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,7 @@ func (v *SubShell) Activate(proj *project.Project, cfg sscommon.Configurable, ou
176176
directEnv = sscommon.EnvSlice(v.env)
177177
}
178178

179-
cmd, err := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
180-
if err != nil {
181-
return err
182-
}
183-
179+
cmd := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
184180
v.errs = sscommon.Start(cmd)
185181
v.cmd = cmd
186182
return nil

internal/subshell/cmd/cmd.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,7 @@ func (v *SubShell) Activate(prj *project.Project, cfg sscommon.Configurable, out
165165
directEnv = sscommon.EnvSlice(v.env)
166166
}
167167

168-
cmd, err := sscommon.NewCommand("cmd", shellArgs, directEnv)
169-
if err != nil {
170-
return err
171-
}
172-
168+
cmd := sscommon.NewCommand("cmd", shellArgs, directEnv)
173169
v.errs = sscommon.Start(cmd)
174170
v.cmd = cmd
175171
return nil

internal/subshell/fish/fish.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,7 @@ func (v *SubShell) Activate(proj *project.Project, cfg sscommon.Configurable, ou
152152
directEnv = sscommon.EnvSlice(v.env)
153153
}
154154

155-
cmd, err := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
156-
if err != nil {
157-
return err
158-
}
159-
155+
cmd := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
160156
v.errs = sscommon.Start(cmd)
161157
v.cmd = cmd
162158
return nil

internal/subshell/sscommon/sscommon.go

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,18 @@ import (
77
"strings"
88

99
"github.com/ActiveState/cli/internal/errs"
10-
"github.com/ActiveState/cli/internal/fileutils"
1110
"github.com/ActiveState/cli/internal/locale"
1211
"github.com/ActiveState/cli/internal/logging"
1312
"github.com/ActiveState/cli/internal/osutils"
1413
"github.com/ActiveState/cli/internal/sighandler"
1514
)
1615

17-
func NewCommand(command string, args []string, env []string) (*exec.Cmd, error) {
18-
if !fileutils.IsExecutable(command) {
19-
err := locale.NewInputError(
20-
"err_sscommon_command_not_executable",
21-
"Command '{{.V0}}' is not an executable.",
22-
command,
23-
)
24-
return nil, errs.AddTips(err,
25-
"Ensure that the targeted command is a valid executable.",
26-
"Checking environment vars like SHELL may help resolve this.",
27-
)
28-
}
29-
16+
func NewCommand(command string, args []string, env []string) *exec.Cmd {
3017
cmd := exec.Command(command, args...)
3118
if env != nil {
3219
cmd.Env = append(os.Environ(), env...)
3320
}
34-
return cmd, nil
21+
return cmd
3522
}
3623

3724
// Start wires stdin/stdout/stderr into the provided command, starts it, and
@@ -66,7 +53,11 @@ func Start(cmd *exec.Cmd) chan error {
6653
return
6754
}
6855

69-
errors <- errs.Wrap(err, "Command Failed: %s", cmd.String())
56+
err = errs.AddTips(errs.Wrap(err, "Command Failed: %s", cmd.String()),
57+
"Checking environment vars like SHELL may help resolve this.",
58+
)
59+
errors <- err
60+
7061
return
7162
}
7263
}()

internal/subshell/tcsh/tcsh.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,7 @@ func (v *SubShell) Activate(proj *project.Project, cfg sscommon.Configurable, ou
146146
directEnv = sscommon.EnvSlice(v.env)
147147
}
148148

149-
cmd, err := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
150-
if err != nil {
151-
return err
152-
}
153-
149+
cmd := sscommon.NewCommand(v.Binary(), shellArgs, directEnv)
154150
v.errs = sscommon.Start(cmd)
155151
v.cmd = cmd
156152
return nil

internal/subshell/zsh/zsh.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,7 @@ func (v *SubShell) Activate(proj *project.Project, cfg sscommon.Configurable, ou
196196
directEnv = sscommon.EnvSlice(v.env)
197197
}
198198

199-
cmd, err := sscommon.NewCommand(v.Binary(), nil, directEnv)
200-
if err != nil {
201-
return err
202-
}
203-
199+
cmd := sscommon.NewCommand(v.Binary(), nil, directEnv)
204200
v.errs = sscommon.Start(cmd)
205201
v.cmd = cmd
206202
return nil

0 commit comments

Comments
 (0)