aboutsummaryrefslogtreecommitdiff
path: root/lib/hydra/action
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hydra/action')
-rw-r--r--lib/hydra/action43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/hydra/action b/lib/hydra/action
new file mode 100644
index 0000000..b5d76a9
--- /dev/null
+++ b/lib/hydra/action
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+# Check if there is a given action
+function hydra_has_action {
+ if [ -z "$ACTIONS" ]; then
+ echo "Your have to set ACTIONS variable in the code"
+ exit 1
+ fi
+
+ if [ -e "$ACTIONS/$1" ]; then
+ true
+ else
+ false
+ fi
+}
+
+# Execute an action
+function hydra_exec {
+ # Setup
+ action="$1"
+ shift 2
+
+ # Dispatch
+ if hydra_has_action $action; then
+ $ACTIONS/$action $*
+ fi
+}
+
+# Get a command argument
+function hydra_get_command {
+ # Aditional parameters
+ COMMAND="$1"
+
+ if [ -z "$COMMAND" ]; then
+ hydra_action_usage command
+ exit 1
+ fi
+}
+
+# Action dispatcher
+function hydra_dispatch {
+ hydra_exec $ACTION $*
+}