diff options
author | Tianon Gravi <admwiggin@gmail.com> | 2022-02-16 12:38:57 -0800 |
---|---|---|
committer | Tianon Gravi <admwiggin@gmail.com> | 2022-02-16 12:54:06 -0800 |
commit | c79a169a35f8ee0ecb66cfcffab4b0bd2c77f996 (patch) | |
tree | c8e80c08e53769bda0ea282da54664ebd146d83a | |
parent | c94596abc975f7cf6a09cab0ef9b32aaf1f72ae7 (diff) | |
download | docker-c79a169a35f8ee0ecb66cfcffab4b0bd2c77f996.tar.gz |
Remove opts.QuotedString implementation
This was originally added to solve a CLI usability issue related to `docker-machine` and `docker` (explicitly *not* `dockerd`) -- the "docker/cli" repository has a separate copy of this entire `opts` package, so isn't even using this implementation.
Signed-off-by: Tianon Gravi <admwiggin@gmail.com>
-rw-r--r-- | cmd/dockerd/options.go | 12 | ||||
-rw-r--r-- | cmd/dockerd/options_test.go | 6 | ||||
-rw-r--r-- | opts/quotedstring.go | 41 | ||||
-rw-r--r-- | opts/quotedstring_test.go | 34 |
4 files changed, 7 insertions, 86 deletions
diff --git a/cmd/dockerd/options.go b/cmd/dockerd/options.go index 56f0005963..3c12d8bde4 100644 --- a/cmd/dockerd/options.go +++ b/cmd/dockerd/options.go @@ -67,15 +67,11 @@ func (o *daemonOptions) InstallFlags(flags *pflag.FlagSet) { // TODO use flag flags.String("identity"}, "i", "", "Path to libtrust key file") - o.TLSOptions = &tlsconfig.Options{ - CAFile: filepath.Join(dockerCertPath, DefaultCaFile), - CertFile: filepath.Join(dockerCertPath, DefaultCertFile), - KeyFile: filepath.Join(dockerCertPath, DefaultKeyFile), - } + o.TLSOptions = &tlsconfig.Options{} tlsOptions := o.TLSOptions - flags.Var(opts.NewQuotedString(&tlsOptions.CAFile), "tlscacert", "Trust certs signed only by this CA") - flags.Var(opts.NewQuotedString(&tlsOptions.CertFile), "tlscert", "Path to TLS certificate file") - flags.Var(opts.NewQuotedString(&tlsOptions.KeyFile), "tlskey", "Path to TLS key file") + flags.StringVar(&tlsOptions.CAFile, "tlscacert", filepath.Join(dockerCertPath, DefaultCaFile), "Trust certs signed only by this CA") + flags.StringVar(&tlsOptions.CertFile, "tlscert", filepath.Join(dockerCertPath, DefaultCertFile), "Path to TLS certificate file") + flags.StringVar(&tlsOptions.KeyFile, "tlskey", filepath.Join(dockerCertPath, DefaultKeyFile), "Path to TLS key file") hostOpt := opts.NewNamedListOptsRef("hosts", &o.Hosts, opts.ValidateHost) flags.VarP(hostOpt, "host", "H", "Daemon socket(s) to connect to") diff --git a/cmd/dockerd/options_test.go b/cmd/dockerd/options_test.go index 604a902bb5..13c1084273 100644 --- a/cmd/dockerd/options_test.go +++ b/cmd/dockerd/options_test.go @@ -17,9 +17,9 @@ func TestCommonOptionsInstallFlags(t *testing.T) { opts.InstallFlags(flags) err := flags.Parse([]string{ - "--tlscacert=\"/foo/cafile\"", - "--tlscert=\"/foo/cert\"", - "--tlskey=\"/foo/key\"", + "--tlscacert=/foo/cafile", + "--tlscert=/foo/cert", + "--tlskey=/foo/key", }) assert.Check(t, err) assert.Check(t, is.Equal("/foo/cafile", opts.TLSOptions.CAFile)) diff --git a/opts/quotedstring.go b/opts/quotedstring.go deleted file mode 100644 index 34f30971e4..0000000000 --- a/opts/quotedstring.go +++ /dev/null @@ -1,41 +0,0 @@ -package opts // import "github.com/docker/docker/opts" - -// QuotedString is a string that may have extra quotes around the value. The -// quotes are stripped from the value. -type QuotedString struct { - value *string -} - -// Set sets a new value -func (s *QuotedString) Set(val string) error { - *s.value = trimQuotes(val) - return nil -} - -// Type returns the type of the value -func (s *QuotedString) Type() string { - return "string" -} - -func (s *QuotedString) String() string { - return *s.value -} - -func trimQuotes(value string) string { - if len(value) < 2 { - return value - } - - lastIndex := len(value) - 1 - for _, char := range []byte{'\'', '"'} { - if value[0] == char && value[lastIndex] == char { - return value[1:lastIndex] - } - } - return value -} - -// NewQuotedString returns a new quoted string option -func NewQuotedString(value *string) *QuotedString { - return &QuotedString{value: value} -} diff --git a/opts/quotedstring_test.go b/opts/quotedstring_test.go deleted file mode 100644 index fc7b7747b1..0000000000 --- a/opts/quotedstring_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package opts // import "github.com/docker/docker/opts" - -import ( - "testing" - - "gotest.tools/v3/assert" - is "gotest.tools/v3/assert/cmp" -) - -func TestQuotedStringSetWithQuotes(t *testing.T) { - value := "" - qs := NewQuotedString(&value) - assert.Check(t, qs.Set(`"something"`)) - assert.Check(t, is.Equal("something", qs.String())) - assert.Check(t, is.Equal("something", value)) -} - -func TestQuotedStringSetWithMismatchedQuotes(t *testing.T) { - qs := NewQuotedString(new(string)) - assert.Check(t, qs.Set(`"something'`)) - assert.Check(t, is.Equal(`"something'`, qs.String())) -} - -func TestQuotedStringSetWithNoQuotes(t *testing.T) { - qs := NewQuotedString(new(string)) - assert.Check(t, qs.Set("something")) - assert.Check(t, is.Equal("something", qs.String())) -} - -func TestQuotedStringEmptyOrSingleCharString(t *testing.T) { - qs := NewQuotedString(new(string)) - assert.Check(t, qs.Set("")) - assert.Check(t, qs.Set("'")) -} |