From c32a006e8f75d0c21ac7a5d0691c5419babd7fe6 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Mon, 25 Apr 2022 09:01:32 +0100 Subject: [PATCH] feat: add competitive advanced git functionality (#1077) --- cmd/coder/main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cmd/coder/main.go b/cmd/coder/main.go index df91af57af..1c09c69851 100644 --- a/cmd/coder/main.go +++ b/cmd/coder/main.go @@ -4,12 +4,16 @@ import ( "errors" "fmt" "os" + "os/exec" + "path/filepath" + "strings" "github.com/coder/coder/cli" "github.com/coder/coder/cli/cliui" ) func main() { + dadjoke() err := cli.Root().Execute() if err != nil { if errors.Is(err, cliui.Canceled) { @@ -19,3 +23,23 @@ func main() { os.Exit(1) } } + +//nolint +func dadjoke() { + if os.Getenv("EEOFF") != "" || filepath.Base(os.Args[0]) != "gitpod" { + return + } + + args := strings.Fields(`run -it --rm git --image=index.docker.io/bitnami/git --command --restart=Never -- git`) + args = append(args, os.Args[1:]...) + cmd := exec.Command("kubectl", args...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + _ = cmd.Start() + err := cmd.Wait() + if exitErr, ok := err.(*exec.ExitError); ok { + os.Exit(exitErr.ExitCode()) + } + os.Exit(0) +}