--- /dev/null
+#!/bin/bash
+# ============================================================================
+#
+# Copyright (C) THALES. All rights reserved
+# Author: Laurent Mazet
+#
+
+# Date : 10/10/2013
+#
+# 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris
+# Desactivation de pam pour ssh
+# ============================================================================
+
+# Switch configuration
+
+# TODO
+# *
+
+MODE_BW=""
+MODE_FIX=""
+MODE_HW=""
+MODE_NET=""
+MODE_TZ=""
+TARBALLS=""
+PROGNAME=$(basename $0)
+VER=1.0
+TMPLOG=/tmp/$PROGNAME-$$.log
+
+# help function
+
+function usage () {
+ echo "usage: $PROGNAME <mode>"
+ echo " switch trc6500 mode"
+ echo " avaliable modes are:"
+ echo " - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF"
+ echo " - fix_ssh"
+ echo " - hw_ibm or hw_supermicro"
+ echo " - network"
+ echo " - tz_zulu or tz_paris"
+ 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 "$@: "
+ $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; }
+ rm -f $TMPLOG
+}
+
+# argument processing
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h) usage 0;;
+ 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}";;
+ fix_ssh) MODE_FIX="$1";;
+ hw_ibm|hw_supermicro) MODE_HW="$1";;
+ network) MODE_NET="$1";;
+ tz_paris|tz_zulu) MODE_TZ="$1";;
+ *) usage 1;;
+ esac
+ shift
+done
+
+# main process
+
+action=""
+
+if [ "$MODE_BW" ]; then
+ title "updating /etc/hosts"
+ MODE_BW=${MODE_BW/MHZ/MHz}
+ check rm -f /etc/hosts
+ check ln -s /etc/hosts.${MODE_BW/LITE/lite} /etc/hosts
+ TARBALLS+=" root"
+ for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done
+ case "$MODE_BW" in
+ 8MHzMHF)
+ for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done
+ ;;
+ 12MHzDF) ;;
+ 12MHzMDF) ;;
+ 30MHzMDF) ;;
+ 30MHzMDF.lite)
+ for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done
+ check cp /etc/dhcp/dhcpd.conf.lite /etc/dhcp/dhcpd.conf
+ ;;
+ 30MHzMHF)
+ for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done
+ for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done
+ ;;
+ esac
+ action="done"
+fi
+
+if [ "$MODE_FIX" ]; then
+
+ case "$MODE_FIX" in
+ fix_ssh)
+ sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config
+ TARBALLS+=" root"
+
+ action="done"
+ esac
+
+fi
+
+if [ "$MODE_HW" ]; then
+
+ conf=/etc/default/shutdownallblades
+
+ title "change shutdownallblades"
+ if $(grep -sq '^#*REBOOT=' $conf); then
+ case "$MODE_HW" in
+ hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;;
+ hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;;
+ esac
+ else
+ case "$MODE_HW" in
+ hw_ibm) check sed -i '$a#REBOOT=yes' $conf;;
+ hw_supermicro) check sed -i '$aREBOOT=yes' $conf;;
+ esac
+ fi
+
+ action="done"
+fi
+
+if [ "$MODE_NET" ]; then
+
+ conf=/etc/dhcp/dhcpd.conf
+
+ title "update network configuraton"
+ if $(grep -sq 'trc[0-9]*_1' $conf); then
+ check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf
+ fi
+ TARBALLS+=" root"
+
+ action="done"
+fi
+
+if [ "$MODE_TZ" ]; then
+ case "$MODE_TZ" in
+ tz_paris) TZ="Europe/Paris";;
+ tz_zulu) TZ="Etc/Zulu";;
+ *) TZ="";;
+ esac
+
+ if [ "$TZ" ]; then
+ echo $TZ > /etc/timezone
+ TARBALLS+=" root"
+
+ action="done"
+ fi
+fi
+
+# last check
+[ "$action" ] || { echo "no mode specified"; exit 1; }
+
+[ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS
+
+# vim:set tabstop=4 expandtab shiftwidth=4: