Import from Clearcase LIV_TRC6500_V2.2.3
[debian6500.git] / install / cluster / bin / create_bios_tarball.sh
1 #!/bin/bash
2
3 # ============================================================================
4 # Copyright (C) THALES. All rights reserved
5 # Author: Laurent Mazet
6 # Date : 09/05/2014
7 # ============================================================================
8
9 # TODO
10 # *
11
12 PROGNAME=$(basename $0)
13 BIOS=/opt/bios
14 EXCLUDE=/tmp/$PROGNAME-exclude-$$
15 TFTP=/opt/tftp
16 TARBALL=$TFTP/bios.tgz
17 TMPROOT=/tmp/$PROGNAME-root-$$
18 TMPLOG=/tmp/$PROGNAME-$$.log
19 VER=1.0
20
21 # help function
22
23 function usage () {
24 echo "usage: $PROGNAME [-h] [-v]"
25 echo " -h: help message"
26 echo " -v: version message"
27 exit $@
28 }
29
30 # formating functions
31
32 function title () { echo -e "\033[0;1m$*\033[0;0m"; }
33 function pass () { echo -e "\033[1;32m$*\033[0;0m"; }
34 function warn () { echo -e "\033[1;33m$*\033[0;0m"; }
35 function fail () { echo -e "\033[1;31m$*\033[0;0m"; }
36 # check command
37
38 function check () {
39 echo -n "$@: "
40 { eval $@; } >&$TMPLOG && pass OK || { fail KO; cat $TMPLOG; ERR=yes; }
41 rm -f $TMPLOG
42 test ! "$TEST" = yes
43 }
44
45 # argument processing
46
47 while [ $# -gt 0 ]; do
48 case "$1" in
49 -h) usage 0;;
50 -v) echo "$PROGNAME: version $VER"; exit;;
51 *) echo "unknown argument ($1)"; exit 1;;
52 esac
53 shift
54 done
55
56 # create exclude list
57 cat - <<EOF > $EXCLUDE
58 *~
59 *.bak
60 .*.swp
61 .#*
62 EOF
63
64 # create repository
65 check mkdir $TMPROOT
66 for f in $BIOS/*; do
67 check cp $f $TMPROOT
68 done
69
70 cat > $TMPROOT/+init <<EOF
71 #!/bin/sh
72 mydir=\$(dirname \$0)
73 \$mydir/update_bios_cfg.sh -Y -y
74 sleep 10
75 reboot -f
76 EOF
77 chmod +x $TMPROOT/+init
78 check test -x $TMPROOT/+init
79
80 # create tarball
81 _OLDPWD=$(pwd)
82 [ -f $TARBALL ] && check rm -f $TARBALL
83 cd $TMPROOT
84 check tar czf $TARBALL --exclude-from $EXCLUDE .
85 cd $_OLDPWD
86
87 # clean repository
88 check rm -rf $TMPROOT
89
90 # clean exclude list
91 check rm -f $EXCLUDE
92 exit 0