summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/hydra/action43
-rw-r--r--lib/hydra/config59
-rw-r--r--lib/hydra/functions3
-rw-r--r--lib/hydra/misc124
-rw-r--r--lib/hydra/usage25
5 files changed, 130 insertions, 124 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 $*
+}
diff --git a/lib/hydra/config b/lib/hydra/config
new file mode 100644
index 0000000..f45366b
--- /dev/null
+++ b/lib/hydra/config
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Setup main configuration and load preferences
+function hydra_config_load {
+ local folder="`dirname $CONFIG`"
+
+ if [ -f "$folder" ]; then
+ echo "Converting legacy configuration scheme..."
+ mv $folder $folder.tmp
+ mkdir -p $folder
+ mv $folder.tmp $CONFIG
+ fi
+
+ if [ ! -e "$CONFIG" ]; then
+ echo "Creating $CONFIG..."
+ mkdir `dirname $CONFIG`
+ touch $CONFIG
+ chmod 600 $CONFIG
+ echo "# Hydra config file." > $CONFIG
+ echo "" >> $CONFIG
+ fi
+
+ hydra_config_load_preferences
+}
+
+# Load config preferences
+function hydra_config_load_preferences {
+ # Load custom preferences
+ if [ ! -z "$PREFERENCES" ] && [ -f "$PREFERENCES" ]; then
+ source $PREFERENCES
+ fi
+
+ hydra_check_preferences
+}
+
+# Check preferences
+function hydra_check_preferences {
+ if [ ! -z "$PUPPET" ] && [ ! -d "$PUPPET" ]; then
+ echo "Puppet folder not found: $PUPPET."
+ exit 1
+ fi
+
+ if [ -z "$PUPPET_KEYS" ]; then
+ PUPPET_KEYS="$PUPPET/files/keys"
+ fi
+}
+
+# Load a parameter from config
+function hydra_config {
+ if [ -z "$CONFIG" ]; then
+ echo "Your have to set CONFIG variable in the code"
+ exit 1
+ elif [ -e "$CONFIG" ]; then
+ grep -e "^$1=" $CONFIG | tail -n 1 | cut -d = -f 2 | sed -e 's/"//g' -e "s/'//g" | sed -e 's/ *#.*$//'
+ else
+ echo "Config file not found: $CONFIG"
+ exit 1
+ fi
+}
diff --git a/lib/hydra/functions b/lib/hydra/functions
index 0324bbb..b07e523 100644
--- a/lib/hydra/functions
+++ b/lib/hydra/functions
@@ -6,6 +6,9 @@
# Source required functions
source $APP_BASE/lib/hydra/git
source $APP_BASE/lib/hydra/misc
+source $APP_BASE/lib/hydra/usage
+source $APP_BASE/lib/hydra/action
+source $APP_BASE/lib/hydra/config
source $APP_BASE/lib/hydra/tmpfile
# Setup environment
diff --git a/lib/hydra/misc b/lib/hydra/misc
index fd90e93..2fd5518 100644
--- a/lib/hydra/misc
+++ b/lib/hydra/misc
@@ -1,89 +1,5 @@
#!/bin/bash
-# Setup main configuration and load preferences
-function hydra_config_load {
- local folder="`dirname $CONFIG`"
-
- if [ -f "$folder" ]; then
- echo "Converting legacy configuration scheme..."
- mv $folder $folder.tmp
- mkdir -p $folder
- mv $folder.tmp $CONFIG
- fi
-
- if [ ! -e "$CONFIG" ]; then
- echo "Creating $CONFIG..."
- mkdir `dirname $CONFIG`
- touch $CONFIG
- chmod 600 $CONFIG
- echo "# Hydra config file." > $CONFIG
- echo "" >> $CONFIG
- fi
-
- hydra_config_load_preferences
-}
-
-# Load config preferences
-function hydra_config_load_preferences {
- # Load custom preferences
- if [ ! -z "$PREFERENCES" ] && [ -f "$PREFERENCES" ]; then
- source $PREFERENCES
- fi
-
- hydra_check_preferences
-}
-
-# Check preferences
-function hydra_check_preferences {
- if [ ! -z "$PUPPET" ] && [ ! -d "$PUPPET" ]; then
- echo "Puppet folder not found: $PUPPET."
- exit 1
- fi
-
- if [ -z "$PUPPET_KEYS" ]; then
- PUPPET_KEYS="$PUPPET/files/keys"
- fi
-}
-
-# Load a parameter from config
-function hydra_config {
- if [ -z "$CONFIG" ]; then
- echo "Your have to set CONFIG variable in the code"
- exit 1
- elif [ -e "$CONFIG" ]; then
- grep -e "^$1=" $CONFIG | tail -n 1 | cut -d = -f 2 | sed -e 's/"//g' -e "s/'//g" | sed -e 's/ *#.*$//'
- else
- echo "Config file not found: $CONFIG"
- exit 1
- fi
-}
-
-# 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
-}
-
# Set needed environment variables and do basic checks.
function hydra_set_env {
export CONFIG="$HOME/.hydra/config"
@@ -94,46 +10,6 @@ function hydra_set_env {
fi
}
-# Get a command argument
-function hydra_get_command {
- # Aditional parameters
- COMMAND="$1"
-
- if [ -z "$COMMAND" ]; then
- hydra_action_usage command
- exit 1
- fi
-}
-
-# Run the action usage
-function hydra_action_usage {
- if [ "`type -t "hydra_usage_$BASENAME"`" == "function" ]; then
- # Use custom action usage
- hydra_usage_$BASENAME
- else
- # Default usage
- echo "Usage: $NAME <command> [arguments]"
- fi
-
- echo "Available commands:"
- ls $ACTIONS | sed -e 's/^/\t/'
-}
-
-# Action dispatcher
-function hydra_dispatch {
- hydra_exec $ACTION $*
-}
-
-# Hydra usage
-function hydra_usage_hydra {
- echo "Usage: hydra [hydra] <command> [arguments]"
-}
-
-# Hydra ctl usage
-function hydra_usage_hydractl {
- echo "Usage: hydractl <command> [arguments]"
-}
-
# Read a parameter from user
function hydra_user_input {
local input
diff --git a/lib/hydra/usage b/lib/hydra/usage
new file mode 100644
index 0000000..32acbb0
--- /dev/null
+++ b/lib/hydra/usage
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# Run the action usage
+function hydra_action_usage {
+ if [ "`type -t "hydra_usage_$BASENAME"`" == "function" ]; then
+ # Use custom action usage
+ hydra_usage_$BASENAME
+ else
+ # Default usage
+ echo "Usage: $NAME <command> [arguments]"
+ fi
+
+ echo "Available commands:"
+ ls $ACTIONS | sed -e 's/^/\t/'
+}
+
+# Hydra usage
+function hydra_usage_hydra {
+ echo "Usage: hydra [hydra] <command> [arguments]"
+}
+
+# Hydra ctl usage
+function hydra_usage_hydractl {
+ echo "Usage: hydractl <command> [arguments]"
+}