DockerCLI/cli
Sebastiaan van Stijn 13e842a110
cli/config: add synchronisation for configDir (Dir, SetDir)
commit 8a30653ed5 introduced a sync.Once
to allow for the config-directory (and home-dir) to be looked up lazily
instead of in an `init()`.

However, the package-level `configDir` variable can be set through two
separate paths; implicitly (through `config.Dir()`), and explicitly,
through `config.SetDir()`. The existing code had no synchronisation for
this, which could lead to a potential race-condition (code requesting
`config.Dir()` and code setting a custom path through `config.SetDir()`).

This patch adds synchronisation by triggering the `sync.Once` as part of
`config.SetDir()` to prevent it being triggered later (overwriting the
value that was set). It also restores the `resetConfigDir()` utility that
was removed in 379122b033, to allow resetting
the `sync.Once` for this test.

In general, we should get rid of this package-level variable, and store
it as a config on the client (passing the option to locations where its
used instead).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-06-28 12:58:26 +02:00
..
command cli/command/context: don't use pkg/homedir in test 2023-06-26 13:35:42 +02:00
compose cli/compose/convert: convertEnvironment: sort results 2023-06-12 19:03:59 +02:00
config cli/config: add synchronisation for configDir (Dir, SetDir) 2023-06-28 12:58:26 +02:00
connhelper commandconn: don't return error if command closed successfully 2023-06-09 11:24:19 +02:00
context cli/context/docker: rename receiver for Endpoint 2023-05-04 17:08:18 +02:00
debug updated vendoring 2017-09-01 19:41:06 -04:00
flags docs: update description for docker -H flag 2023-05-07 21:45:55 +02:00
manifest manifest: save raw manifest content on download 2023-01-27 13:56:17 +00:00
registry/client replace uses of deprecated api/types.AuthConfig 2023-03-30 19:57:16 +02:00
streams cli/streams: minor refactoring and docs touch-ups 2023-04-03 11:27:26 +02:00
trust replace uses of deprecated api/types.AuthConfig 2023-03-30 19:57:16 +02:00
version Move versioning variables to a separate package. 2019-01-29 11:26:40 +00:00
winresources Use goversioninfo to create Windows Version Info 2021-10-11 16:54:22 +02:00
cobra.go cli: make cobra templates a const 2023-04-12 15:44:29 +02:00
cobra_test.go cli: use custom annotation for aliases 2022-06-28 17:32:09 +02:00
error.go Import docker/docker/cli 2017-04-17 17:40:59 -04:00
required.go format (GoDoc) comments with Go 1.19 to prepare for go updates 2022-07-19 19:10:16 +02:00
required_test.go cli: remove deprecated io/ioutil 2022-02-25 15:42:19 +01:00