--- /dev/null
+#!/bin/bash
+
+# ============================================================================
+# Copyright (C) THALES. All rights reserved
+# Author: Laurent Mazet
+# Date : 02/05/2014
+# ============================================================================
+
+# TODO
+# *
+
+PROGNAME=$(basename $0)
+BLADES="slave"
+CLUSTER=/opt/cluster
+EXCLUDE=/tmp/$PROGNAME-exclude-$$
+TFTP=/opt/tftp
+TMPLOG=/tmp/$PROGNAME-$$.log
+VER=1.0
+
+# help function
+
+function usage () {
+ echo "usage: $PROGNAME [-h] [-v]"
+ echo " -h: help message"
+ echo " -v: version message"
+ exit $@
+}
+
+# formating functions
+
+function title () { echo -e "\033[0;1m$*\033[0;0m"; }
+function pass () { echo -e "\033[1;32m$*\033[0;0m"; }
+function warn () { echo -e "\033[1;33m$*\033[0;0m"; }
+function fail () { echo -e "\033[1;31m$*\033[0;0m"; }
+# check command
+
+function check () {
+ echo -n "$@: "
+ { eval $@; } >&$TMPLOG && pass OK || { fail KO; cat $TMPLOG; ERR=yes; }
+ rm -f $TMPLOG
+ test ! "$TEST" = yes
+}
+
+# argument processing
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h) usage 0;;
+ -v) echo "$PROGNAME: version $VER"; exit;;
+ *) echo "unknown argument ($1)"; exit 1;;
+ esac
+ shift
+done
+
+# create exclude list
+cat - <<EOF > $EXCLUDE
+*~
+*.bak
+.*.swp
+.#*
+EOF
+
+# create tarballs
+_OLDPWD=$(pwd)
+for target in $BLADES; do
+ tarball=$TFTP/$target.tgz
+ repository=$CLUSTER/$target
+ [ -d "$repository" ] || { warn "directory '$repository' does not exist"; continue; }
+ [ -f $tarball ] && check rm -f $tarball
+ cd $repository
+ check tar czf $tarball --exclude-from $EXCLUDE .
+done
+cd $_OLDPWD
+
+# clean exclude list
+check rm -f $EXCLUDE
+exit 0