diff options
Diffstat (limited to 'lib/hydra/config')
-rw-r--r-- | lib/hydra/config | 59 |
1 files changed, 59 insertions, 0 deletions
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 +} |