From b2393677e3813f80b43cbbd228a1521e83229445 Mon Sep 17 00:00:00 2001 From: Sunil Thaha Date: Tue, 16 Jun 2020 20:11:01 +1000 Subject: [PATCH] Attempt at adding a plugin sub-cmd Fixes: #1039 Signed-off-by: Sunil Thaha --- cmd/tkn/main.go | 44 ++++++++++++++++++++++++++++++++++++++++++-- tmp/cli.log | 0 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 tmp/cli.log diff --git a/cmd/tkn/main.go b/cmd/tkn/main.go index 866b00e23f..c963e68eda 100644 --- a/cmd/tkn/main.go +++ b/cmd/tkn/main.go @@ -15,7 +15,11 @@ package main import ( + "fmt" + "log" "os" + "os/exec" + "syscall" "github.com/tektoncd/cli/pkg/cli" "github.com/tektoncd/cli/pkg/cmd" @@ -26,7 +30,43 @@ func main() { tp := &cli.TektonParams{} tkn := cmd.Root(tp) - if err := tkn.Execute(); err != nil { - os.Exit(1) + args := os.Args[1:] + _, _, err := tkn.Find(args) + + if err == nil { + if err := tkn.Execute(); err != nil { + os.Exit(1) + } + return } + + pluginCmd := "tkn-" + os.Args[1] + + exCmd, err := exec.LookPath(pluginCmd) + + if err != nil { + fmt.Fprintf(os.Stderr, ` + ============================================ + looked for: %s + error: + %s + _____________________________________________ + `, pluginCmd, err) + + if err := tkn.Execute(); err != nil { + os.Exit(1) + } + } + + fmt.Fprintf(os.Stderr, ` + ============================================ + external binary: %s + error: + %s + _____________________________________________ + `, exCmd, err) + + errX := syscall.Exec(exCmd, append([]string{exCmd}, os.Args[2:]...), os.Environ()) + log.Printf("Command finished with error: %v", errX) + } diff --git a/tmp/cli.log b/tmp/cli.log new file mode 100644 index 0000000000..e69de29bb2