Merge pull request #81 from chris-crone/always-context

Context should always be handled by new CLI
This commit is contained in:
Guillaume Tardif 2020-05-13 09:40:28 +02:00 committed by GitHub
commit 1a3365fa37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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)