From 0cf03baa7882f18d2d8623f4dc1ede3be271e32e Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 13 May 2019 16:05:27 -0400 Subject: [PATCH] feat: add ability to trigger an arbitrary plugin hook This is useful in cases where the command output must be tested, but it is otherwise embedded in a specific part of the dokku core. As the 'plugin' commands require root, this is safe to add to the core. --- docs/advanced-usage/plugin-management.md | 1 + plugins/plugin/commands | 9 +++++---- plugins/plugin/subcommands/trigger | 13 +++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100755 plugins/plugin/subcommands/trigger diff --git a/docs/advanced-usage/plugin-management.md b/docs/advanced-usage/plugin-management.md index 34c59b4f0..c8b3a778b 100644 --- a/docs/advanced-usage/plugin-management.md +++ b/docs/advanced-usage/plugin-management.md @@ -8,6 +8,7 @@ plugin:enable # Enable a previously disabled plugin plugin:install [--core|git-url [--committish tag|branch|commit|--name custom-plugin-name]] # Optionally download git-url (with custom tag/committish) & run install trigger for active plugins (or only core ones) plugin:install-dependencies [--core] # Run install-dependencies trigger for active plugins (or only core ones) plugin:list # Print active plugins +plugin:trigger . # Trigger an arbitrary plugin hook plugin:uninstall # Uninstall a plugin (third-party only) plugin:update [name [committish]] # Optionally update named plugin from git (with custom tag/committish) & run update trigger for active plugins ``` diff --git a/plugins/plugin/commands b/plugins/plugin/commands index 0722d5002..7b436b331 100755 --- a/plugins/plugin/commands +++ b/plugins/plugin/commands @@ -8,13 +8,14 @@ case "$1" in help_content_func() { declare desc="return plugin plugin help content" cat <, Disable an installed plugin (third-party only) + plugin:enable , Enable a previously disabled plugin plugin:install [--core|git-url [--committish tag|branch|commit|--name custom-plugin-name]], Optionally download git-url (with custom tag/committish) & run install trigger for active plugins (or only core ones) plugin:install-dependencies [--core], Run install-dependencies trigger for active plugins (or only core ones) - plugin:update [name [committish]], Optionally update named plugin from git (with custom tag/committish) & run update trigger for active plugins - plugin:enable , Enable a previously disabled plugin - plugin:disable , Disable an installed plugin (third-party only) + plugin:list, Print active plugins + plugin:trigger , Trigger an arbitrary plugin hook plugin:uninstall , Uninstall a plugin (third-party only) + plugin:update [name [committish]], Optionally update named plugin from git (with custom tag/committish) & run update trigger for active plugins help_content } diff --git a/plugins/plugin/subcommands/trigger b/plugins/plugin/subcommands/trigger new file mode 100755 index 000000000..94a58d78f --- /dev/null +++ b/plugins/plugin/subcommands/trigger @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +plugin_trigger_cmd() { + declare desc="trigger an arbitrary plugin hook" + local cmd="plugin:trigger" + [[ "$1" == "$cmd" ]] && shift 1 + + plugn trigger "$@" +} + +plugin_trigger_cmd "$@"