aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-04-13 11:54:49 -0300
committerSilvio Rhatto <rhatto@riseup.net>2013-04-13 11:54:49 -0300
commitcacd89daaa865cc170734e4c7e7dd81cedb725af (patch)
treed33f9bec1605241c02339cf333898e17b9561263 /share
parenta073f06707f5d58d12602868d57e7463df83cb29 (diff)
downloadhydra-cacd89daaa865cc170734e4c7e7dd81cedb725af.tar.gz
hydra-cacd89daaa865cc170734e4c7e7dd81cedb725af.tar.bz2
Adding module-add subcommand
Diffstat (limited to 'share')
-rwxr-xr-xshare/hydra/module-add57
-rwxr-xr-xshare/hydra/module-update4
2 files changed, 59 insertions, 2 deletions
diff --git a/share/hydra/module-add b/share/hydra/module-add
new file mode 100755
index 0000000..a226d4a
--- /dev/null
+++ b/share/hydra/module-add
@@ -0,0 +1,57 @@
+#!/bin/bash
+#
+# Add puppet modules
+#
+# 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
+
+# Parameters
+DOMAIN="`facter domain`"
+
+function hydra_module_add {
+ # Command line arguments
+ MODULE="$1"
+
+ # Validation
+ if [ -z "$MODULE" ]; then
+ echo "Usage: hydra <hydra> module-add <module> [<module1> ... <moduleN>]"
+ exit 1
+ elif [ ! -d "$PUPPET/modules/$MODULE" ]; then
+ echo "No such module $MODULE at $HYDRA puppet configuration."
+ exit 1
+ fi
+
+ # Update the module
+ ( cd $PUPPET ; git submodule add git://git.$DOMAIN/puppet-$MODULE modules/$MODULE )
+ ( cd $PUPPET ; git commit -a -m "Adding $MODULE module" )
+
+ # Verify the module
+ if ! hydra $HYDRA module-verify $MODULE; then
+ echo "ERROR: Updated module doesn't match hash, please verify and update manually."
+ exit 1
+ fi
+
+ # Commit
+ ( cd $PUPPET; push )
+}
+
+for module in $*; do
+ echo "Adding module $module at puppet repository..."
+ hydra_module_add $module
+done
+
diff --git a/share/hydra/module-update b/share/hydra/module-update
index 2fc0192..99dbd7f 100755
--- a/share/hydra/module-update
+++ b/share/hydra/module-update
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Update a puppet module
+# Update puppet modules
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -26,7 +26,7 @@ function hydra_module_update {
# Validation
if [ -z "$MODULE" ]; then
- echo "Usage: hydra <hydra> module-update <module>"
+ echo "Usage: hydra <hydra> module-update <module> [<module1> ... <moduleN>]"
exit 1
elif [ ! -d "$PUPPET/modules/$MODULE" ]; then
echo "No such module $MODULE at $HYDRA puppet configuration."