From 7bd5096b3ef2ba304349ee23df42ad6c8f689c68 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 29 May 2022 23:17:32 +0200 Subject: [PATCH] refactor: add plugin flags to category (#51) --- cmd/drone-docker/config.go | 37 ++++++++++++++++++++++++++++++++++++- cmd/drone-docker/main.go | 2 +- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/cmd/drone-docker/config.go b/cmd/drone-docker/config.go index 280a52a..9cee18f 100644 --- a/cmd/drone-docker/config.go +++ b/cmd/drone-docker/config.go @@ -6,31 +6,35 @@ import ( ) // settingsFlags has the cli.Flags for the plugin.Settings. -func settingsFlags(settings *plugin.Settings) []cli.Flag { +func settingsFlags(settings *plugin.Settings, category string) []cli.Flag { return []cli.Flag{ &cli.BoolFlag{ Name: "dry-run", EnvVars: []string{"PLUGIN_DRY_RUN"}, Usage: "disables docker push", Destination: &settings.Dryrun, + Category: category, }, &cli.StringFlag{ Name: "remote.url", EnvVars: []string{"DRONE_REMOTE_URL"}, Usage: "sets the git remote url", Destination: &settings.Build.Remote, + Category: category, }, &cli.StringFlag{ Name: "daemon.mirror", EnvVars: []string{"PLUGIN_MIRROR", "DOCKER_PLUGIN_MIRROR"}, Usage: "sets a registry mirror to pull images", Destination: &settings.Daemon.Mirror, + Category: category, }, &cli.StringFlag{ Name: "daemon.storage-driver", EnvVars: []string{"PLUGIN_STORAGE_DRIVER"}, Usage: "sets the docker daemon storage driver", Destination: &settings.Daemon.StorageDriver, + Category: category, }, &cli.StringFlag{ Name: "daemon.storage-path", @@ -38,60 +42,70 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "sets the docker daemon storage path", Value: "/var/lib/docker", Destination: &settings.Daemon.StoragePath, + Category: category, }, &cli.StringFlag{ Name: "daemon.bip", EnvVars: []string{"PLUGIN_BIP"}, Usage: "allows the docker daemon to bride ip address", Destination: &settings.Daemon.Bip, + Category: category, }, &cli.StringFlag{ Name: "daemon.mtu", EnvVars: []string{"PLUGIN_MTU"}, Usage: "sets docker daemon custom mtu setting", Destination: &settings.Daemon.MTU, + Category: category, }, &cli.StringSliceFlag{ Name: "daemon.dns", EnvVars: []string{"PLUGIN_CUSTOM_DNS"}, Usage: "sets custom docker daemon dns server", Destination: &settings.Daemon.DNS, + Category: category, }, &cli.StringSliceFlag{ Name: "daemon.dns-search", EnvVars: []string{"PLUGIN_CUSTOM_DNS_SEARCH"}, Usage: "sets custom docker daemon dns search domain", Destination: &settings.Daemon.DNSSearch, + Category: category, }, &cli.BoolFlag{ Name: "daemon.insecure", EnvVars: []string{"PLUGIN_INSECURE"}, Usage: "allows the docker daemon to use insecure registries", Destination: &settings.Daemon.Insecure, + Category: category, }, &cli.BoolFlag{ Name: "daemon.ipv6", EnvVars: []string{"PLUGIN_IPV6"}, Usage: "enables docker daemon IPv6 support", Destination: &settings.Daemon.IPv6, + Category: category, }, &cli.BoolFlag{ Name: "daemon.experimental", EnvVars: []string{"PLUGIN_EXPERIMENTAL"}, Usage: "enables docker daemon experimental mode", Destination: &settings.Daemon.Experimental, + Category: category, }, &cli.BoolFlag{ Name: "daemon.debug", EnvVars: []string{"PLUGIN_DEBUG", "DOCKER_LAUNCH_DEBUG"}, Usage: "enables verbose debug mode for the docker daemon", Destination: &settings.Daemon.Debug, + Category: category, }, &cli.BoolFlag{ Name: "daemon.off", EnvVars: []string{"PLUGIN_DAEMON_OFF"}, Usage: "disables the startup of the docker daemon", Destination: &settings.Daemon.Disabled, + Category: category, }, &cli.StringFlag{ Name: "dockerfile", @@ -99,6 +113,7 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "sets dockerfile to use for the image build", Value: "Dockerfile", Destination: &settings.Build.Dockerfile, + Category: category, }, &cli.StringFlag{ Name: "context", @@ -106,6 +121,7 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "sets the path of the build context to use", Value: ".", Destination: &settings.Build.Context, + Category: category, }, &cli.StringSliceFlag{ Name: "tags", @@ -113,48 +129,56 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "sets repository tags to use for the image", FilePath: ".tags", Destination: &settings.Build.Tags, + Category: category, }, &cli.BoolFlag{ Name: "tags.auto", EnvVars: []string{"PLUGIN_DEFAULT_TAGS", "PLUGIN_AUTO_TAG"}, Usage: "generates tag names automatically based on git branch and git tag", Destination: &settings.Build.TagsAuto, + Category: category, }, &cli.StringFlag{ Name: "tags.suffix", EnvVars: []string{"PLUGIN_DEFAULT_SUFFIX", "PLUGIN_AUTO_TAG_SUFFIX"}, Usage: "generates tag names with the given suffix", Destination: &settings.Build.TagsSuffix, + Category: category, }, &cli.StringSliceFlag{ Name: "args", EnvVars: []string{"PLUGIN_BUILD_ARGS"}, Usage: "sets custom build arguments for the build", Destination: &settings.Build.Args, + Category: category, }, &cli.StringSliceFlag{ Name: "args-from-env", EnvVars: []string{"PLUGIN_BUILD_ARGS_FROM_ENV"}, Usage: "forwards environment variables as custom arguments to the build", Destination: &settings.Build.ArgsEnv, + Category: category, }, &cli.BoolFlag{ Name: "quiet", EnvVars: []string{"PLUGIN_QUIET"}, Usage: "enables suppression of the build output", Destination: &settings.Build.Quiet, + Category: category, }, &cli.StringFlag{ Name: "target", EnvVars: []string{"PLUGIN_TARGET"}, Usage: "sets the build target to use", Destination: &settings.Build.Target, + Category: category, }, &cli.StringSliceFlag{ Name: "cache-from", EnvVars: []string{"PLUGIN_CACHE_FROM"}, Usage: "sets images to consider as cache sources", Destination: &settings.Build.CacheFrom, + Category: category, }, &cli.BoolFlag{ Name: "pull-image", @@ -162,18 +186,21 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "enforces to pull base image at build time", Value: true, Destination: &settings.Build.Pull, + Category: category, }, &cli.BoolFlag{ Name: "compress", EnvVars: []string{"PLUGIN_COMPRESS"}, Usage: "enables compression og the build context using gzip", Destination: &settings.Build.Compress, + Category: category, }, &cli.StringFlag{ Name: "repo", EnvVars: []string{"PLUGIN_REPO"}, Usage: "sets repository name for the image", Destination: &settings.Build.Repo, + Category: category, }, &cli.StringFlag{ Name: "docker.registry", @@ -181,30 +208,35 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "sets docker registry to authenticate with", Value: "https://index.docker.io/v1/", Destination: &settings.Login.Registry, + Category: category, }, &cli.StringFlag{ Name: "docker.username", EnvVars: []string{"PLUGIN_USERNAME", "DOCKER_USERNAME"}, Usage: "sets username to authenticates with", Destination: &settings.Login.Username, + Category: category, }, &cli.StringFlag{ Name: "docker.password", EnvVars: []string{"PLUGIN_PASSWORD", "DOCKER_PASSWORD"}, Usage: "sets password to authenticates with", Destination: &settings.Login.Password, + Category: category, }, &cli.StringFlag{ Name: "docker.email", EnvVars: []string{"PLUGIN_EMAIL", "DOCKER_EMAIL"}, Usage: "sets email address to authenticates with", Destination: &settings.Login.Email, + Category: category, }, &cli.StringFlag{ Name: "docker.config", EnvVars: []string{"PLUGIN_CONFIG", "DOCKER_PLUGIN_CONFIG"}, Usage: "sets content of the docker daemon json config", Destination: &settings.Login.Config, + Category: category, }, &cli.BoolFlag{ Name: "docker.purge", @@ -212,18 +244,21 @@ func settingsFlags(settings *plugin.Settings) []cli.Flag { Usage: "enables cleanup of the docker environment at the end of a build", Value: true, Destination: &settings.Cleanup, + Category: category, }, &cli.BoolFlag{ Name: "no-cache", EnvVars: []string{"PLUGIN_NO_CACHE"}, Usage: "disables the usage of cached intermediate containers", Destination: &settings.Build.NoCache, + Category: category, }, &cli.StringSliceFlag{ Name: "add-host", EnvVars: []string{"PLUGIN_ADD_HOST"}, Usage: "sets additional host:ip mapping", Destination: &settings.Build.AddHost, + Category: category, }, } } diff --git a/cmd/drone-docker/main.go b/cmd/drone-docker/main.go index 692eb91..4ebd062 100644 --- a/cmd/drone-docker/main.go +++ b/cmd/drone-docker/main.go @@ -32,7 +32,7 @@ func main() { Name: "drone-docker", Usage: "build docker container with DinD", Version: BuildVersion, - Flags: append(settingsFlags(settings), urfave.Flags()...), + Flags: append(settingsFlags(settings, urfave.FlagsPluginCategory), urfave.Flags()...), Action: run(settings), }