diff --git a/bin/foamInstallationTest b/bin/foamInstallationTest index 708c63841026d556d4fcde194276e2eb5549f099..5035b48201324525957ffa530368a8679391a80b 100755 --- a/bin/foamInstallationTest +++ b/bin/foamInstallationTest @@ -34,72 +34,73 @@ # Base settings FOAM_VERSION=1.6 -SUPPLIED_VERSION_GCC=4.3.3 -MIN_VERSION_GCC=4.3.1 +SUPPLIED_VERSION_GCC=4.4.3 +MIN_VERSION_GCC=4.3.3 # General WIDTH=20 # Global variables -FATALERROR=0 -CRITICALERROR=0 -SSHRSHOK=0 +fatalError=0 +criticalError=0 # System variables -HOST_NAME=`uname -n` -OS=`uname -s` +HOST=`uname -n` +OSTYPE=`uname -s` USER_NAME=$LOGNAME -if [ ! -n $USER_NAME ]; then - USER_NAME=$USER -fi +: ${USER_NAME:=$USER} + +# which OpenFOAM application to test for the Version +foamTestApp=icoFoam #============================================================================== # HELPER FUNCTIONS #============================================================================== -hline () { +hline() +{ echo "-------------------------------------------------------------------------------" } -expenv () { - eval "echo $1" -} - - -heading () { - echo "" - echo "" +heading() +{ + echo + echo echo "$1" } -lenBase () { +lenBase() +{ echo $1 | tr -d " " | wc -m | tr -d " " } -length () { +length() +{ NOCHAR=`lenBase $1` NOCHAR=`expr $NOCHAR - 1` - if [ $NOCHAR -eq -1 ]; then - NOCHAR=0 - fi + [ $NOCHAR -ge 0 ] || NOCHAR=0 echo $NOCHAR } -stringLength () { +stringLength() +{ echo $1 | wc -m | tr -d " " } -fixlen () { +fixlen() +{ WORD=$1 ONELEN=`stringLength $1` LDIFF=`expr $ONELEN - $2` - if [ $LDIFF -le 1 ]; then - while [ $LDIFF -lt 0 ] ; do + if [ $LDIFF -le 1 ] + then + while [ $LDIFF -lt 0 ] + do WORD="$WORD " LDIFF=`expr $LDIFF + 1` done @@ -112,33 +113,34 @@ fixlen () { } -reportEnv () { +reportEnv() +{ EXP_ENV=`eval "echo $1"` EXP_PATH=`eval "echo $2"` CRIT="$3" EXISTS=" no " ON_PATH="" - if [ `length $EXP_ENV` -gt 0 ] ; then - case $OS in + if [ `length $EXP_ENV` -gt 0 ] + then + case "$OSTYPE" in SunOS) - if /usr/bin/test -e $EXP_ENV ; then + if /usr/bin/test -e $EXP_ENV + then EXISTS=" yes " - if [ "$2" != noPath ]; then + if [ "$2" != noPath ] + then ON_PATH=" no " - OLD_IFS=$IFS + oldIFS=$IFS IFS=':' for e in $EXP_PATH do - if \ - [ \ - "$e" = "$EXP_ENV" \ - -o "$e" = "${EXP_ENV}/bin" \ - -o "${EXP_ENV}/lib" = "$e" \ - ] ; then + case "$e" in + "$EXP_ENV" | "$EXP_ENV/bin" | "$EXP_ENV/lib") ON_PATH="yes " - fi + ;; + esac done - IFS=$OLD_IFS + IFS=$oldIFS else CRIT=" $3" fi @@ -148,24 +150,23 @@ reportEnv () { echo "`fixlen "$1" 21` `fixlen "$EXP_ENV" 40` $EXISTS $ON_PATH $CRIT" ;; *) - if [ -e "$EXP_ENV" ] ; then + if [ -e "$EXP_ENV" ] + then EXISTS=" yes " - if [ "$2" != noPath ]; then + if [ "$2" != noPath ] + then ON_PATH=" no " - OLD_IFS=$IFS + oldIFS=$IFS IFS=':' for e in $EXP_PATH do - if \ - [ \ - "$e" = "$EXP_ENV" \ - -o "$e" = "${EXP_ENV}/bin" \ - -o "${EXP_ENV}/lib" = "$e" \ - ] ; then + case "$e" in + "$EXP_ENV" | "$EXP_ENV/bin" | "$EXP_ENV/lib") ON_PATH="yes " - fi + ;; + esac done - IFS=$OLD_IFS + IFS=$oldIFS else CRIT=" $3" fi @@ -180,11 +181,13 @@ reportEnv () { fi ERROR="false" - if [ "$EXISTS" = no ] || [ "$ON_PATH" = no ]; then + if [ "$EXISTS" = no ] || [ "$ON_PATH" = no ] + then ERROR="true" fi - if [ "$3" = yes ] && [ "$ERROR" = true ]; then - CRITICALERROR=`expr $CRITICALERROR + 1` + if [ "$3" = yes ] && [ "$ERROR" = true ] + then + criticalError=`expr $criticalError + 1` echo "WARNING: CRITICAL ERROR" echo fi @@ -192,197 +195,111 @@ reportEnv () { } -findExec() { - OLD_IFS=$IFS +findExec() +{ + oldIFS=$IFS IFS=':' for d in $1 do - case $OS in + case "$OSTYPE" in SunOS) - if /usr/bin/test ! -d "$d/$2" -a -x "$d/$2" ; then - IFS=$OLD_IFS + if /usr/bin/test ! -d "$d/$2" -a -x "$d/$2" + then + IFS=$oldIFS echo "$d/$2" return 0 fi ;; *) - if [ ! -d "$d/$2" -a -x "$d/$2" ]; then - IFS=$OLD_IFS + if [ ! -d "$d/$2" -a -x "$d/$2" ] + then + IFS=$oldIFS echo "$d/$2" return 0 fi ;; esac done - IFS=$OLD_IFS + IFS=$oldIFS return 1 } -reportExecutable () { +reportExecutable() +{ APP_PATH="" APP_PATH=`findExec $PATH $1` APP_SPEC="$2" - if [ ! -n $APP_PATH ];then + if [ ! -n $APP_PATH ] + then echo "`fixlen "$1" 9`" "*** not installed ***" VERSION="" - case $1 in - icoFoam) - echo " CRITICAL ERROR" - CRITICALERROR=`expr $CRITICALERROR + 1` - ;; - gcc) - echo " CRITICAL ERROR" - CRITICALERROR=`expr $CRITICALERROR + 1` - ;; - tar) ;; - gtar) ;; - gzip) ;; - dx) ;; + case "$1" in + gcc | $foamTestApp) + echo " CRITICAL ERROR" + criticalError=`expr $criticalError + 1` + ;; esac echo return 1 fi - case $1 in - icoFoam) - VERSION=`$1 2>&1 \ - | \grep ' Version:' \ - | sed -e 's/.*Version:/Version:/' \ - | cut -d" " -f3` - ;; - gcc) - VERSION=`$1 -v 2>&1 \ - | grep 'gcc version' \ - | cut -d" " -f3` - if [ ! "$VERSION" = "$SUPPLIED_VERSION_GCC" ]; then - echo "WARNING: gcc version does not match gcc supplied" \ - "with this release of OpenFOAM" - echo " Supplied version: $SUPPLIED_VERSION_GCC" - echo " User version : $VERSION" - echo " Minimum required: $MIN_VERSION_GCC" - echo "" - fi - ;; - gtar) - VERSION=`$APP_PATH --version | head -1` - ;; - tar) - VERSION=`$APP_PATH --version | head -1 | cut -d" " -f4` + case "$1" in + $foamTestApp) + VERSION=`$1 -case /dev/null 2>&1 \ + | sed -ne 's/^.*Version: *\([^ ][^ ]*\).*/\1/p'` + ;; + gcc) + VERSION=`$1 -v 2>&1 \ + | sed -ne 's/^gcc version \([0-9][0-9.]*\).*/\1/p' ` + + if [ "$VERSION" != "$SUPPLIED_VERSION_GCC" ] + then + echo "WARNING: gcc version does not match gcc supplied" \ + "with this release of OpenFOAM" + echo " Supplied version: $SUPPLIED_VERSION_GCC" + echo " User version : $VERSION" + echo " Minimum required: $MIN_VERSION_GCC" + echo "" + fi + ;; + gtar) + VERSION=`$APP_PATH --version | head -1` + ;; + tar) + VERSION=`$APP_PATH --version | head -1 | cut -d" " -f4` + ;; + gzip) + case "$OSTYPE" in + SunOS) + VERSION=`$1 --version 2>&1 | grep gzip | cut -d" " -f2` ;; - gzip) - case $OS in - SunOS) - VERSION=`$1 --version 2>&1 | grep gzip | cut -d" " -f2` - ;; - *) - VERSION=`$1 --version | head -1 | cut -d" " -f2` - ;; - esac + *) + VERSION=`$1 --version | head -1 | cut -d" " -f2` ;; + esac + ;; esac - if [ "$APP_PATH" = "$APP_SPEC" ] || [ ! "$2" ]; then + if [ "$APP_PATH" = "$APP_SPEC" ] || [ ! "$2" ] + then echo "`fixlen "$1" 9` `fixlen "$VERSION" 10` `fixlen "$APP_PATH" 58`" else echo "`fixlen "$1" 9` `fixlen "$VERSION" 10`" echo "WARNING: Conflicting installations:" echo " OpenFOAM settings : $APP_SPEC" echo " current path : $APP_PATH" - case $1 in - icoFoam) - echo " CRITICAL ERROR" - CRITICALERROR=`expr $CRITICALERROR + 1` - ;; - gcc) - echo " CRITICAL ERROR" - CRITICALERROR=`expr $CRITICALERROR + 1` - ;; - gtar) ;; - gzip) ;; - dx) ;; + case "$1" in + gcc | $foamTestApp) + echo " CRITICAL ERROR" + criticalError=`expr $criticalError + 1` + ;; esac echo "" fi } -pingTest () { - RESULT="" - case $OS in - SunOS) - PINGTEST=`/usr/sbin/ping $1 2>&1` - if [ "`echo $PINGTEST | grep alive`" != "" ] ; then - RESULT="Successful" - elif [ "`echo $PINGTEST | grep 'unknown host'`" != "" ] ; then - RESULT="No_entry_for_\"$1\"_in_/etc/hosts" - else - RESULT="Networking_cannot_reach_$1" - fi - ;; - *) - PINGTEST=`/bin/ping -w 3 -c 1 $1 2>&1` - if [ "`echo $PINGTEST | grep '1 received'`" != "" ] ; then - RESULT="Successful" - elif [ "`echo $PINGTEST | grep 'unknown host'`" != "" ] ; then - RESULT="No_entry_for_\"$1\"_in_/etc/hosts" - else - RESULT="Networking_cannot_reach_$1" - fi - ;; - esac - - echo "`fixlen "Pinging_$1" 25` `fixlen "$RESULT" 45` `fixlen "$2" 5`" - - if [ "$2" = yes ] && [ "$RESULT" != Successful ]; then - CRITICALERROR=`expr $CRITICALERROR + 1` - echo "WARNING: CRITICAL ERROR" - echo - fi -} - - -telnetPortTest () { -telnet -e A $1 $2 <<EOF -A -quit -EOF -} - - -checkTelnetPort () { - if [ -x "/usr/bin/telnet" ] || [ -x "/bin/telnet" ] ; then - RESULT=`telnetPortTest $1 $2 2>&1 | egrep "onnect.* [t|r]"` - if [ "`echo $RESULT | grep 'Connected to'`" ] ; then - RESULT='Successful' - elif [ "`echo $RESULT | grep 'Connection refused'`" ] ; then - RESULT='Unsuccessful_connection_refused*' - else - RESULT="Not_active*" - fi - else - RESULT='No_telnet_installed:_cannot_check*' - fi -} - - -checkRsh () { - checkTelnetPort $HOST_NAME 222 - echo "`fixlen "Test_rsh:" 25` `fixlen "$RESULT" 45` "yes"" - if [ "$RESULT" != Successful ]; then - SSHRSHOK=`expr $SSHRSHOK + 1` - fi -} - - -checkSsh () { - checkTelnetPort $HOST_NAME 22 - echo "`fixlen "Test_ssh:" 25` `fixlen "$RESULT" 45` "yes"" - if [ "$RESULT" != Successful ]; then - SSHRSHOK=`expr $SSHRSHOK + 1` - fi -} - - -checkOpenFOAMEnvironment() { +checkOpenFOAMEnvironment() +{ [ -d "$WM_PROJECT_INST_DIR" ] && [ -d "$WM_THIRD_PARTY_DIR" ] || { echo "" echo "FATAL ERROR: OpenFOAM environment not configured." @@ -396,54 +313,50 @@ checkOpenFOAMEnvironment() { } -checkUserShell() { +checkUserShell() +{ + echo "`fixlen Shell: $WIDTH` ${SHELL##*/}" case $SHELL in - */csh | */tcsh) - # USER_CONFIG_TYPE="cshrc" - echo "`fixlen "Shell:" $WIDTH` ${SHELL##*/}" - ;; - */bash | */ksh) - # USER_CONFIG_TYPE="bashrc" - echo "`fixlen "Shell:" $WIDTH` ${SHELL##*/}" - ;; - *) - # USER_CONFIG_TYPE="" - echo "`fixlen "Shell:" $WIDTH` ${SHELL##*/}" - echo "FATAL ERROR: Cannot identify the shell you are running." - echo " OpenFOAM ${FOAM_VERSION} is compatible with " - echo " csh, tcsh, ksh and bash." - echo - FATALERROR=`expr $FATALERROR + 1`;; + */csh | */tcsh | */bash | */ksh) + ;; + *) + echo "FATAL ERROR: Cannot identify the shell you are running." + echo " OpenFOAM ${FOAM_VERSION} is compatible with " + echo " csh, tcsh, ksh and bash." + echo + fatalError=`expr $fatalError + 1` + ;; esac } -checkHostName() { - if [ ! "$HOST_NAME" ]; then - echo "`fixlen "Host:" $WIDTH` ${HOST_NAME}" +checkHostName() +{ + echo "`fixlen Host: $WIDTH` $HOST" + if [ ! "$HOST" ] + then echo "FATAL ERROR: Cannot stat hostname." echo " Contact your system administrator, " echo " OpenFOAM ${FOAM_VERSION} needs a valid " echo " hostname to function." echo - FATALERROR=`expr $FATALERROR + 1` - else - echo "`fixlen "Host:" $WIDTH` ${HOST_NAME}" + fatalError=`expr $fatalError + 1` fi } -checkOS () { - case "$OS" in +checkOS() +{ + case "$OSTYPE" in Linux | LinuxAMD64 | SunOS ) - echo "`fixlen "OS:" $WIDTH` ${OS} version $(uname -r)" + echo "`fixlen OS: $WIDTH` $OSTYPE version $(uname -r)" ;; *) - echo "FATAL ERROR: Incompatible operating system \"$OS\"." - echo " OpenFOAM ${FOAM_VERSION} is currently " + echo "FATAL ERROR: Incompatible operating system \"$OSTYPE\"." + echo " OpenFOAM $FOAM_VERSION is currently " echo " available for Linux and SunOS only." echo - FATALERROR=`expr $FATALERROR + 1` + fatalError=`expr $fatalError + 1` ;; esac } @@ -466,8 +379,8 @@ hline #------------------------------------------------------------------------------ heading "Checking main OpenFOAM env variables..." -COL1=`fixlen "Environment_variable" 21` -COL2=`fixlen "Set_to_file_or_directory" 40` +COL1=`fixlen Environment_variable 21` +COL2=`fixlen Set_to_file_or_directory 40` COL3="Valid" COL4="Path" COL5="Crit" @@ -505,20 +418,21 @@ hline #------------------------------------------------------------------------------ heading "Third party software" -COL1=`fixlen "Software" 9` -COL2=`fixlen "Version" 10` -COL3=`fixlen "Location" 10` +COL1=`fixlen Software 9` +COL2=`fixlen Version 10` +COL3=`fixlen Location 10` hline echo "$COL1 $COL2 $COL3" hline -reportExecutable gcc "${WM_COMPILER_DIR}/bin/gcc" +reportExecutable gcc reportExecutable gzip -if [ "$OS" = Linux ] ; then +if [ "$OSTYPE" = Linux ] +then reportExecutable tar else reportExecutable gtar fi -reportExecutable icoFoam "${FOAM_APPBIN}/icoFoam" +reportExecutable $foamTestApp "$FOAM_APPBIN/$foamTestApp" hline @@ -526,27 +440,28 @@ hline heading "Summary" hline -if [ $FATALERROR -gt 0 ] ; then - echo "The system test has evoked $FATALERROR fatal error(s)." +if [ $fatalError -gt 0 ] +then + echo "The system test has evoked $fatalError fatal error(s)." else echo "Base configuration ok." fi -echo "" -if [ $CRITICALERROR -gt 0 ]; then - echo "The foam installation contains $CRITICALERROR critical error(s)." +if [ $criticalError -gt 0 ] +then + echo "The foam installation contains $criticalError critical error(s)." else echo "Critical systems ok." fi -echo "" -if [ $CRITICALERROR -gt 0 ] || [ $FATALERROR -gt 0 ]; then - echo "Review the output for warning messages and consult " - echo "the installation guide for trouble shooting." +if [ $criticalError -gt 0 ] || [ $fatalError -gt 0 ] +then + echo + echo "Review the output for warning messages and consult" + echo "the installation guide for troubleshooting." fi -echo "" -echo "done." - -echo "" +echo +echo Done +echo exit 0 diff --git a/bin/foamSystemCheck b/bin/foamSystemCheck index 0d739d64fae008920631fa68ef0a7e873f621446..50061b532d6160a065b9812021ae956ad96eecc1 100755 --- a/bin/foamSystemCheck +++ b/bin/foamSystemCheck @@ -38,31 +38,32 @@ FOAM_VERSION=1.6 HLINE="-----------------------------------------------------------------------" WIDTH=16 -unset FATALERROR +unset fatalError # FUNCTIONS # ~~~~~~~~~ -heading () { - echo "" +heading() +{ + echo echo "$1" echo "$HLINE" } -lenBase () { +lenBase() +{ echo $1 | tr -d " " | wc -m | tr -d " " } -length () { +length() +{ NOCHAR=$(lenBase $1) NOCHAR=$(expr $NOCHAR - 1) - if [ $NOCHAR -eq -1 ] - then - NOCHAR=0 - fi + [ $NOCHAR -ge 0 ] || NOCHAR=0 echo $NOCHAR } -fixlen () { +fixlen() +{ WORD=$1 ONELEN=$(length "$1") LDIFF=$(expr $ONELEN - $2) @@ -86,48 +87,43 @@ fixlen () { heading "Checking basic system..." # check shell -echo "$(fixlen "Shell:" $WIDTH) $SHELL" +echo "$(fixlen Shell: $WIDTH) $SHELL" case "$SHELL" in -*/csh | */tcsh) - USER_CONFIG_TYPE=cshrc - ;; -*/bash | */ksh) - USER_CONFIG_TYPE=bashrc +*/csh | */tcsh | */bash | */ksh) ;; *) - USER_CONFIG_TYPE="" - echo "FATALERROR: Cannot identify the current shell." - echo " OpenFOAM ${FOAM_VERSION} is compatible" - echo " with csh, tcsh, ksh and bash." + echo "ERROR: Cannot identify the current shell." + echo " OpenFOAM $FOAM_VERSION is compatible" + echo " with csh, tcsh, ksh and bash." echo - FATALERROR=yes + fatalError=true ;; esac # check hostname HOST=$(uname -n) -echo "$(fixlen "Host:" $WIDTH) $HOST" +echo "$(fixlen Host: $WIDTH) $HOST" if [ $(length $HOST) -eq 0 ] then - echo "FATALERROR: Cannot stat hostname." - echo " OpenFOAM ${FOAM_VERSION} needs a valid hostname to function." - echo " Contact your system administrator. " + echo "ERROR: Cannot stat hostname." + echo " OpenFOAM $FOAM_VERSION needs a valid hostname to function." + echo " Contact your system administrator. " echo - FATALERROR=yes + fatalError=true fi # check os -OS=$(uname -s) -case "$OS" in +OSTYPE=$(uname -s) +case "$OSTYPE" in Linux | LinuxAMD64 | SunOS ) - echo "$(fixlen "OS:" $WIDTH) ${OS} version $(uname -r)" + echo "$(fixlen OS: $WIDTH) $OSTYPE version $(uname -r)" ;; *) - echo "FATALERROR: Incompatible operating system \"$OS\"." - echo " OpenFOAM ${FOAM_VERSION} is currently available for " - echo " Linux, LinuxAMD64 and SunOS only." + echo "ERROR: Incompatible operating system \"$OSTYPE\"." + echo " OpenFOAM $FOAM_VERSION is currently available for " + echo " Linux, LinuxAMD64 and SunOS only." echo - FATALERROR=yes + fatalError=true ;; esac @@ -139,20 +135,20 @@ then USER_NAME=$USER fi -echo "$(fixlen "User:" $WIDTH) ${USER_NAME}" +echo "$(fixlen User: $WIDTH) ${USER_NAME}" if [ $(length $USER_NAME) -eq 0 ] then - echo "FATALERROR: Cannot stat user name ${USER_NAME}." - echo " OpenFOAM ${FOAM_VERSION} needs a valid user name." - echo " Contact your system administrator. " - echo "" - FATALERROR=yes + echo "ERROR: Cannot stat user name $USER_NAME." + echo " OpenFOAM $FOAM_VERSION needs a valid user name." + echo " Contact your system administrator. " + echo + fatalError=true fi -echo "" -echo "" -if [ -n "$FATALERROR" ] +echo +echo +if [ "$fatalError" = true ] then echo "System check: FAIL" echo "=================="