From 9c0db3f4ac44d769b59c5d9ca2c95ea822cc1b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tarc=C3=ADsio=20Gruppi?= Date: Tue, 28 Jul 2015 20:02:18 +0200 Subject: [PATCH] Created types for functions The function used by BashComplete, Before, After, Action and CommandNotFound have their won type. This makes easier to change/update the API --- app.go | 10 +++++----- command.go | 8 ++++---- funcs.go | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 funcs.go diff --git a/app.go b/app.go index e7caec9..41b08a8 100644 --- a/app.go +++ b/app.go @@ -28,17 +28,17 @@ type App struct { // Boolean to hide built-in version flag HideVersion bool // An action to execute when the bash-completion flag is set - BashComplete func(context *Context) + BashComplete BashCompleteFn // An action to execute before any subcommands are run, but after the context is ready // If a non-nil error is returned, no subcommands are run - Before func(context *Context) error + Before BeforeFn // An action to execute after any subcommands are run, but after the subcommand has finished // It is run even if Action() panics - After func(context *Context) error + After AfterFn // The action to execute when no subcommands are specified - Action func(context *Context) + Action ActionFn // Execute this function if the proper command cannot be found - CommandNotFound func(context *Context, command string) + CommandNotFound CommandNotFoundFn // Compilation date Compiled time.Time // List of all authors who contributed diff --git a/command.go b/command.go index 54617af..7022f8c 100644 --- a/command.go +++ b/command.go @@ -19,15 +19,15 @@ type Command struct { // A longer explanation of how the command works Description string // The function to call when checking for bash command completions - BashComplete func(context *Context) + BashComplete BashCompleteFn // An action to execute before any sub-subcommands are run, but after the context is ready // If a non-nil error is returned, no sub-subcommands are run - Before func(context *Context) error + Before BeforeFn // An action to execute after any subcommands are run, but after the subcommand has finished // It is run even if Action() panics - After func(context *Context) error + After AfterFn // The function to call when this command is invoked - Action func(context *Context) + Action ActionFn // List of child commands Subcommands []Command // List of flags to parse diff --git a/funcs.go b/funcs.go new file mode 100644 index 0000000..6807c98 --- /dev/null +++ b/funcs.go @@ -0,0 +1,18 @@ +package cli + +// An action to execute when the bash-completion flag is set +type BashCompleteFn func(*Context) + +// An action to execute before any subcommands are run, but after the context is ready +// If a non-nil error is returned, no subcommands are run +type BeforeFn func(*Context) error + +// An action to execute after any subcommands are run, but after the subcommand has finished +// It is run even if Action() panics +type AfterFn func(*Context) error + +// The action to execute when no subcommands are specified +type ActionFn func(*Context) + +// Execute this function if the proper command cannot be found +type CommandNotFoundFn func(*Context, string)