diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-04-15 01:48:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-15 01:48:52 +0200 |
commit | f0b6cdede554316643187d40c67684daf5a2a2bb (patch) | |
tree | c2b3a369924f29ddf1762d32941dd10b38da2b9d /cmd/podmanV2/registry/config.go | |
parent | 0d01f09bf4103538a6011019b690e5aa11c377db (diff) | |
parent | d51727642603ba160a7898ee4597d0f071cdea44 (diff) | |
download | podman-f0b6cdede554316643187d40c67684daf5a2a2bb.tar.gz podman-f0b6cdede554316643187d40c67684daf5a2a2bb.tar.bz2 podman-f0b6cdede554316643187d40c67684daf5a2a2bb.zip |
Merge pull request #5812 from jwhonce/wip/options
Add support for the global flags and config files
Diffstat (limited to 'cmd/podmanV2/registry/config.go')
-rw-r--r-- | cmd/podmanV2/registry/config.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/cmd/podmanV2/registry/config.go b/cmd/podmanV2/registry/config.go new file mode 100644 index 000000000..e68009a50 --- /dev/null +++ b/cmd/podmanV2/registry/config.go @@ -0,0 +1,59 @@ +package registry + +import ( + "os" + "runtime" + "strings" + + "github.com/containers/common/pkg/config" + "github.com/containers/libpod/libpod" + "github.com/containers/libpod/pkg/domain/entities" + "github.com/sirupsen/logrus" +) + +const ( + RootRequired = "RootRequired" +) + +var ( + PodmanOptions entities.PodmanConfig +) + +// NewPodmanConfig creates a PodmanConfig from the environment +func NewPodmanConfig() entities.PodmanConfig { + if err := libpod.SetXdgDirs(); err != nil { + logrus.Errorf(err.Error()) + os.Exit(1) + } + + var mode entities.EngineMode + switch runtime.GOOS { + case "darwin": + fallthrough + case "windows": + mode = entities.TunnelMode + case "linux": + mode = entities.ABIMode + default: + logrus.Errorf("%s is not a supported OS", runtime.GOOS) + os.Exit(1) + } + + // cobra.Execute() may not be called yet, so we peek at os.Args. + for _, v := range os.Args { + // Prefix checking works because of how default EngineMode's + // have been defined. + if strings.HasPrefix(v, "--remote=") { + mode = entities.TunnelMode + } + } + + // FIXME: for rootless, where to get the path + // TODO: + cfg, err := config.NewConfig("") + if err != nil { + logrus.Error("Failed to obtain podman configuration") + os.Exit(1) + } + return entities.PodmanConfig{Config: cfg, EngineMode: mode} +} |