]> gitweb.fluxo.info Git - hydra.git/commitdiff
Adding module-add subcommand
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 13 Apr 2013 14:54:49 +0000 (11:54 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 13 Apr 2013 14:54:49 +0000 (11:54 -0300)
share/hydra/module-add [new file with mode: 0755]
share/hydra/module-update

diff --git a/share/hydra/module-add b/share/hydra/module-add
new file mode 100755 (executable)
index 0000000..a226d4a
--- /dev/null
@@ -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
+
index 2fc0192e2b316576c157c7cf9b1c0169e5b4ebd1..99dbd7fcb59d732d7b264e84fb19fc98f1e1532e 100755 (executable)
@@ -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."