From cf9d1abb38b07547f37e8da356d5e41fa3e82cdf Mon Sep 17 00:00:00 2001 From: kinjelom Date: Sat, 4 May 2024 12:07:26 +0200 Subject: [PATCH] missing bosh completion code --- main.go | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 15a324286..1caeb3fe3 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "github.com/cloudfoundry/bosh-cli/v7/cmd/completion" "os" "os/signal" "runtime/debug" @@ -24,19 +25,27 @@ func main() { ui := boshui.NewConfUI(logger) defer ui.Flush() + if completion.IsItCompletionCommand(os.Args[1:]) { + // completion support + blindUi := boshui.NewWrappingConfUI(&completion.BlindUI{}, logger) // only completion can write to stdout + bc := completion.NewBoshComplete(blindUi, logger) + if _, err := bc.Execute(os.Args[1:]); err != nil { + fail(err, ui, logger) + } + } else { + cmdFactory := boshcmd.NewFactory(boshcmd.NewBasicDeps(ui, logger)) - cmdFactory := boshcmd.NewFactory(boshcmd.NewBasicDeps(ui, logger)) - - cmd, err := cmdFactory.New(os.Args[1:]) - if err != nil { - fail(err, ui, logger) - } + cmd, err := cmdFactory.New(os.Args[1:]) + if err != nil { + fail(err, ui, logger) + } - err = cmd.Execute() - if err != nil { - fail(err, ui, logger) - } else { - success(ui, logger) + err = cmd.Execute() + if err != nil { + fail(err, ui, logger) + } else { + success(ui, logger) + } } }