From 3329e193d0069a2f4639ba6d4a1c2c5053fc1bf2 Mon Sep 17 00:00:00 2001 From: Ian Howell Date: Tue, 21 May 2019 10:16:33 -0500 Subject: [PATCH] Move workflow to its own package This causes the workflow command to have the same capabilities and restrictions as any other plugin. --- cmd/plugins.go | 17 +++++++---------- cmd/root.go | 9 ++------- cmd/{ => workflow}/workflow.go | 2 +- cmd/{ => workflow}/workflow_init.go | 2 +- cmd/{ => workflow}/workflow_list.go | 2 +- 5 files changed, 12 insertions(+), 20 deletions(-) rename cmd/{ => workflow}/workflow.go (97%) rename cmd/{ => workflow}/workflow_init.go (99%) rename cmd/{ => workflow}/workflow_list.go (98%) diff --git a/cmd/plugins.go b/cmd/plugins.go index 8c50a97b2..c4df6ecf1 100644 --- a/cmd/plugins.go +++ b/cmd/plugins.go @@ -3,18 +3,15 @@ package cmd import ( "io" - // "github.com/ian-howell/exampleplugin" "github.com/spf13/cobra" + + "github.com/ian-howell/airshipctl/cmd/workflow" + + // "github.com/ian-howell/exampleplugin" ) -// builtinPlugins are the plugins that are built and maintained by the -// airshipctl team. They may be disabled if desired -var builtinPlugins = []func(io.Writer, []string) *cobra.Command{ - NewWorkflowCommand, -} - -// externalPlugins are external. The function to create a command should be -// placed here -var externalPlugins = []func(io.Writer, []string) *cobra.Command{ +// pluginCommands are the functions that create the entrypoint command for a plugin +var pluginCommands = []func(io.Writer, []string) *cobra.Command{ // exampleplugin.NewExampleCommand, // This is an example and shouldn't be enabled in production builds + workflow.NewWorkflowCommand, } diff --git a/cmd/root.go b/cmd/root.go index e4c33c766..daab67289 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -47,14 +47,9 @@ func Execute(out io.Writer) { } } -// loadPluginCommands finds all of the plugins in the builtinPlugins and -// externalPlugins datastructures, and loads them as subcommands to cmd +// loadPluginCommands loads all of the plugins as subcommands to cmd func loadPluginCommands(cmd *cobra.Command, out io.Writer, args []string) { - for _, subcmd := range builtinPlugins { - cmd.AddCommand(subcmd(out, args)) - } - - for _, subcmd := range externalPlugins { + for _, subcmd := range pluginCommands { cmd.AddCommand(subcmd(out, args)) } } diff --git a/cmd/workflow.go b/cmd/workflow/workflow.go similarity index 97% rename from cmd/workflow.go rename to cmd/workflow/workflow.go index 9da280bb7..f130012ba 100644 --- a/cmd/workflow.go +++ b/cmd/workflow/workflow.go @@ -1,4 +1,4 @@ -package cmd +package workflow import ( "io" diff --git a/cmd/workflow_init.go b/cmd/workflow/workflow_init.go similarity index 99% rename from cmd/workflow_init.go rename to cmd/workflow/workflow_init.go index b7d18806c..06f3069fb 100644 --- a/cmd/workflow_init.go +++ b/cmd/workflow/workflow_init.go @@ -1,4 +1,4 @@ -package cmd +package workflow import ( "fmt" diff --git a/cmd/workflow_list.go b/cmd/workflow/workflow_list.go similarity index 98% rename from cmd/workflow_list.go rename to cmd/workflow/workflow_list.go index d1b7be5cd..57850223a 100644 --- a/cmd/workflow_list.go +++ b/cmd/workflow/workflow_list.go @@ -1,4 +1,4 @@ -package cmd +package workflow import ( "fmt"