Move install/* to .
[debian6500.git] / cluster / bin / create_root_tarball.sh
diff --git a/cluster/bin/create_root_tarball.sh b/cluster/bin/create_root_tarball.sh
new file mode 100755 (executable)
index 0000000..50088c7
--- /dev/null
@@ -0,0 +1,101 @@
+#!/bin/bash
+
+# ============================================================================
+# Copyright (C) THALES. All rights reserved
+# Author: Laurent Mazet
+# Date : 20/02/2014
+# ============================================================================
+
+# TODO
+# *
+
+PROGNAME=$(basename $0)
+TFTP=/opt/tftp
+EXCLUDE=/tmp/$PROGNAME-exclude-$$
+IMAGE=$TFTP/root.tgz
+TMPLOG=/tmp/$PROGNAME-$$.log
+VER=2.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
+backup
+boot
+dev/*
+dump
+etc/.git
+etc/udev/rules.d/70-persistent-net.rules
+home
+lost+found
+opt/*
+proc/*
+root/*
+run/*
+sys/*
+tmp/*
+trc6500_list_patched_files.txt
+usr/share/doc
+usr/share/i18n
+usr/share/info
+usr/share/locale
+usr/share/man
+usr/share/zoneinfo
+var/backups/*
+var/cache/apt/*
+var/cache/debconf/*
+var/cache/fontconfig/*
+var/cache/man/*
+var/lib/apt
+var/lib/aptitude
+var/lib/dpkg
+var/lib/samba/*
+var/lock/*
+var/log/*
+var/run/*
+EOF
+check test -f $EXCLUDE
+
+# checks
+[ -f $IMAGE ] && check rm -f $IMAGE
+_OLDPWD=$(pwd) 
+cd /
+check tar czf $IMAGE --exclude-from $EXCLUDE .
+cd $_OLDPWD
+
+# clean exclude list
+check rm -f $EXCLUDE
+exit 0