aboutsummaryrefslogtreecommitdiff
path: root/share/hydra/init
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2012-07-08 13:32:54 -0300
committerSilvio Rhatto <rhatto@riseup.net>2012-07-08 13:32:54 -0300
commitd5aaec1165c5cf529a70907c31f24164ee12188a (patch)
tree32edd2936aa7e1ae5ee2502af735e59c1a191b09 /share/hydra/init
parentd85336458f5cd04abbde5e65bf2ae18aae9c9fa8 (diff)
downloadhydra-d5aaec1165c5cf529a70907c31f24164ee12188a.tar.gz
hydra-d5aaec1165c5cf529a70907c31f24164ee12188a.tar.bz2
Moving hydra register to hydra init (2)
Diffstat (limited to 'share/hydra/init')
-rwxr-xr-xshare/hydra/init54
1 files changed, 54 insertions, 0 deletions
diff --git a/share/hydra/init b/share/hydra/init
new file mode 100755
index 0000000..d9eeccb
--- /dev/null
+++ b/share/hydra/init
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Register an existing hydra
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/>.
+
+# Load
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+# Command line arguments
+BASEDIR="$1"
+
+# Validation
+if [ -z "$BASEDIR" ]; then
+ echo "Usage: hydra [hydra] register <path>"
+ exit 1
+elif grep -q -e "^$HYDRA=" $CONFIG &> /dev/null; then
+ echo "Hydra $HYDRA already defined"
+ exit 1
+fi
+
+# Reparse basedir to force absolute folder
+BASEDIR="`cd $BASEDIR && pwd`"
+
+# Add entry
+echo "Registering hydra $HYDRA..."
+mkdir -p $BASEDIR
+chmod 700 $BASEDIR
+echo "$HYDRA=\"$BASEDIR\"" >> $CONFIG
+
+# Puppet configuration
+echo "Searching for a puppet repository at $BASEDIR..."
+PUPPET="$(dirname `find $BASEDIR -name puppet.conf | tail -n 1`)"
+
+# TODO: setup or clone initial repositories
+
+if [ ! -z "$PUPPET" ]; then
+ echo "Found puppet repository at $PUPPET."
+ echo "PUPPET=$PUPPET" >> $PREFERENCES
+fi
+