Block recursive bash invocation

In theory, we can execute 'k3d bash' again within an cluster shell. I
can't think of any practical value for allowing this capability.
On the contrary, this can lead to confusion to the user.

This patch adds a simple mechanism to detect and block recursive bash
invocation.
pull/66/head
Andy Zhou 5 years ago
parent 2971dd6845
commit 8aaf70f4bf
  1. 11
      cli/shell.go

@ -12,6 +12,11 @@ func bashShell(cluster string, command string) error {
return err
}
subShell := os.ExpandEnv("$__K3D_CLUSTER__")
if len(subShell) > 0 {
return fmt.Errorf("Error: Already in subshell of cluster %s", subShell)
}
bashPath, err := exec.LookPath("bash")
if err != nil {
return err
@ -34,7 +39,11 @@ func bashShell(cluster string, command string) error {
// Set up KUBECONFIG
setKube := fmt.Sprintf("KUBECONFIG=%s", kubeConfigPath)
newEnv := append(os.Environ(), setPS1, setKube)
// Declare subshell
subShell = fmt.Sprintf("__K3D_CLUSTER__=%s", cluster)
newEnv := append(os.Environ(), setPS1, setKube, subShell)
cmd.Env = newEnv

Loading…
Cancel
Save