summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianon Gravi <admwiggin@gmail.com>2022-02-16 12:38:57 -0800
committerTianon Gravi <admwiggin@gmail.com>2022-02-16 12:54:06 -0800
commitc79a169a35f8ee0ecb66cfcffab4b0bd2c77f996 (patch)
treec8e80c08e53769bda0ea282da54664ebd146d83a
parentc94596abc975f7cf6a09cab0ef9b32aaf1f72ae7 (diff)
downloaddocker-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.go12
-rw-r--r--cmd/dockerd/options_test.go6
-rw-r--r--opts/quotedstring.go41
-rw-r--r--opts/quotedstring_test.go34
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("'"))
-}