Context should always be handled by new CLI

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
This commit is contained in:
Christopher Crone 2020-05-12 14:35:16 +02:00
parent 4e7645aae2
commit c93d2e9180
1 changed files with 13 additions and 2 deletions

View File

@ -51,6 +51,10 @@ import (
"github.com/docker/api/util"
)
var (
runningOwnCommand bool
)
type mainOpts struct {
apicontext.Flags
debug bool
@ -86,7 +90,8 @@ func main() {
SilenceErrors: true,
SilenceUsage: true,
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
if !isOwnCommand(cmd) {
runningOwnCommand = isOwnCommand(cmd)
if !runningOwnCommand {
execMoby(cmd.Context())
}
return nil
@ -108,7 +113,8 @@ func main() {
helpFunc := root.HelpFunc()
root.SetHelpFunc(func(cmd *cobra.Command, args []string) {
if !isOwnCommand(cmd) {
runningOwnCommand = isOwnCommand(cmd)
if !runningOwnCommand {
execMoby(cmd.Context())
}
helpFunc(cmd, args)
@ -150,6 +156,11 @@ func main() {
ctx = store.WithContextStore(ctx, s)
if err = root.ExecuteContext(ctx); err != nil {
// Context should always be handled by new CLI
if runningOwnCommand {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
execMoby(ctx)
fmt.Println(err)
os.Exit(1)