From 6fb5f01c736d5cbf11bc7eaad09f6f0c7fd1d0d4 Mon Sep 17 00:00:00 2001
From: Jhon Honce <jhonce@redhat.com>
Date: Mon, 22 Jun 2020 14:29:04 -0700
Subject: Fixes --remote flag issues

* --remote, --url and --identity are now anchored to podman command.
  Subcommands should no longer have issues
* TraverseChildren now set to V1 expectations
* Latest flag now has helper function. Now has consistent usage.
* IsRemote() uses cobra parser to determin if --remote is given
* Moved validation functions from parser pkg to validate pkg
*

Fixes #6598
Fixes #6704

Signed-off-by: Jhon Honce <jhonce@redhat.com>
---
 cmd/podman/registry/remote.go | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

(limited to 'cmd/podman/registry/remote.go')

diff --git a/cmd/podman/registry/remote.go b/cmd/podman/registry/remote.go
index 95870750e..ed1a874d6 100644
--- a/cmd/podman/registry/remote.go
+++ b/cmd/podman/registry/remote.go
@@ -1,9 +1,26 @@
 package registry
 
 import (
+	"os"
+	"sync"
+
 	"github.com/containers/libpod/pkg/domain/entities"
+	"github.com/spf13/cobra"
+)
+
+var (
+	// Was --remote given on command line
+	remoteOverride bool
+	remoteSync     sync.Once
 )
 
+// IsRemote returns true if podman was built to run remote
+// Use in init() functions as a initialization check
 func IsRemote() bool {
-	return podmanOptions.EngineMode == entities.TunnelMode
+	remoteSync.Do(func() {
+		remote := &cobra.Command{}
+		remote.Flags().BoolVarP(&remoteOverride, "remote", "r", false, "")
+		_ = remote.ParseFlags(os.Args)
+	})
+	return podmanOptions.EngineMode == entities.TunnelMode || remoteOverride
 }
-- 
cgit v1.2.3-54-g00ecf