Skip to content
Snippets Groups Projects
Commit 7f7807d5 authored by Mark Olesen's avatar Mark Olesen
Browse files

cleanup foamSystemCheck, foamInstallationTest also needs some cleanup

parent c8887472
Branches
Tags
No related merge requests found
#!/bin/sh -u
#!/bin/sh
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
......@@ -28,37 +28,35 @@
#
# Description
# Checks the machine system and the user's
# personal configuration for running FOAM.
# personal configuration for running OpenFOAM.
#
#------------------------------------------------------------------------------
TMPTAB=tmptab.$$
LOG=log.$0
HLINE="-----------------------------------------------------------------------"
# STATIC VARIABLES
# ~~~~~~~~~~~~~~~~
FOAM_VERSION=1.5
FATALERROR=0
SSHRSHOK=0
WIDTH=20
FOAM_VERSION=1.4.1
OS=`uname -s`
HLINE="-----------------------------------------------------------------------"
WIDTH=16
unset FATALERROR
#FUNCTIONS
#~~~~~~~~~
# FUNCTIONS
# ~~~~~~~~~
heading () {
echo ""
echo ""
echo "$1"
echo "$HLINE"
}
lenBase () {
echo $1 | tr -d " " | wc -m | tr -d " "
echo $1 | tr -d " " | wc -m | tr -d " "
}
length () {
NOCHAR=`lenBase $1`
NOCHAR=`expr $NOCHAR - 1`
if [ $NOCHAR -eq -1 ]; then
NOCHAR=$(lenBase $1)
NOCHAR=$(expr $NOCHAR - 1)
if [ $NOCHAR -eq -1 ]
then
NOCHAR=0
fi
echo $NOCHAR
......@@ -66,197 +64,106 @@ length () {
fixlen () {
WORD=$1
ONELEN=`length "$1"`
LDIFF=`expr $ONELEN - $2`
if [ $LDIFF -le 1 ]; then
while [ $LDIFF -lt 0 ] ; do
ONELEN=$(length "$1")
LDIFF=$(expr $ONELEN - $2)
if [ $LDIFF -le 1 ]
then
while [ $LDIFF -lt 0 ]
do
WORD="$WORD "
LDIFF=`expr $LDIFF + 1`
LDIFF=$(expr $LDIFF + 1)
done
echo "$WORD"
else
LDIFF=`expr $LDIFF + 4`
WORD=`echo "$WORD" | cut -c${LDIFF}-`
LDIFF=$(expr $LDIFF + 4)
WORD=$(echo "$WORD" | cut -c${LDIFF}-)
echo "...${WORD}"
fi
}
# MAIN CODE
# ~~~~~~~~~
heading "Checking basic system..."
checkSetup () {
cat <<EOF
Host: $HOST_NAME
OS: $OS
OS_version: $OS_VERSION
Shell: $USER_SHELL
User: $USER_NAME
EOF
}
checkNetworking () {
pingTest $HOST_NAME
pingTest localHost
checkRsh
checkSsh
}
pingTest () {
case $OS in
SunOS)
if [ -x '/usr/sbin/ping' ] ; then
PINGTEST=`/usr/sbin/ping $1 2>&1`
if [ -n "`echo $PINGTEST | grep 'alive'`" ] ; then
RESULT="Successful"
elif [ -n "`echo $PINGTEST | grep 'unknown host'`" ] ; then
RESULT="Unknown_host"
else
RESULT="Networking_not_set"
fi
else
RESULT="Ping_not_installed_in_usual_path"
fi
;;
*)
if [ -x '/bin/ping' ] ; then
PINGTEST=`/bin/ping -w 3 -c 1 $1 2>&1`
if [ -n "`echo $PINGTEST | grep '1 received'`" ] ; then
RESULT="Successful"
elif [ -n "`echo $PINGTEST | grep 'unknown host'`" ] ; then
RESULT='Unknown host'
else
RESULT='Networking not set'
fi
else
RESULT="Ping_not_installed_in_usual_path"
fi
;;
# check shell
echo "$(fixlen "Shell:" $WIDTH) $SHELL"
case "$SHELL" in
*/csh | */tcsh)
USER_CONFIG_TYPE=cshrc
;;
*/bash | */ksh)
USER_CONFIG_TYPE=bashrc
;;
*)
USER_CONFIG_TYPE=""
echo "FATALERROR: Cannot identify the current shell."
echo " OpenFOAM ${FOAM_VERSION} is compatible"
echo " with csh, tcsh, ksh and bash."
echo
FATALERROR=yes
;;
esac
echo "`fixlen "Ping_$1:" $WIDTH` $RESULT"
if [ "$RESULT" != 'Successful' ]; then
FATALERROR=`expr $FATALERROR + 1`
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_running:_cannot_check*'
fi
}
checkRsh () {
checkTelnetPort $HOST_NAME 222
echo "`fixlen "Test_rsh:" $WIDTH` $RESULT"
if [ "$RESULT" != 'Successful' ]; then
SSHRSHOK=`expr $SSHRSHOK + 1`
fi
}
checkSsh () {
checkTelnetPort $HOST_NAME 22
echo "`fixlen "Test_ssh:" $WIDTH` $RESULT"
if [ "$RESULT" != 'Successful' ]; then
SSHRSHOK=`expr $SSHRSHOK + 1`
fi
}
expenv () {
eval "echo $1"
}
#MAIN CODE
#~~~~~~~~~
HOST_NAME=`uname -n`
OS=`uname -s`
OS_VERSION=`uname -r`
USER_SHELL=`basename $SHELL`
USER_NAME=$LOGNAME
#
if [ `length $USER_NAME` -eq 0 ] ; then
USER_NAME=$USER
fi
#
WIDTH=20
heading "Checking basic system..."
case $USER_SHELL in
csh|tcsh) USER_CONFIG_TYPE=cshrc
echo "`fixlen "Shell:" $WIDTH` $USER_SHELL"
;;
bash|ksh) USER_CONFIG_TYPE=bashrc
echo "`fixlen "Shell:" $WIDTH` $USER_SHELL"
;;
*) USER_CONFIG_TYPE=""
echo "`fixlen "Shell:" $WIDTH` $USER_SHELL"
echo "FATALERROR: Cannot identify the current shell."
echo " Foam ${FOAM_VERSION} is compatible"
echo " with csh, tcsh, ksh and bash."
echo
FATALERROR=`expr $FATALERROR + 1`;;
esac
#
if [ `length $HOST_NAME` -eq 0 ]; then
echo "`fixlen "Host:" $WIDTH` ${HOST_NAME}"
# check hostname
HOST=$(uname -n)
echo "$(fixlen "Host:" $WIDTH) $HOST"
if [ $(length $HOST) -eq 0 ]
then
echo "FATALERROR: Cannot stat hostname."
echo " Foam ${FOAM_VERSION} needs a valid hostname to function."
echo " OpenFOAM ${FOAM_VERSION} needs a valid hostname to function."
echo " Contact your system administrator. "
echo
FATALERROR=`expr $FATALERROR + 1`
else
echo "`fixlen "Host:" $WIDTH` ${HOST_NAME}"
FATALERROR=yes
fi
#
if [ "$OS" = "Linux" ] || [ "$OS" = "LinuxAMD64" ] || [ "$OS" = "SunOS" ]; then
echo "`fixlen "OS:" $WIDTH` ${OS} version ${OS_VERSION}"
else
# check os
OS=$(uname -s)
case "$OS" in
Linux | LinuxAMD64 | SunOS )
echo "$(fixlen "OS:" $WIDTH) ${OS} version $(uname -r)"
;;
*)
echo "FATALERROR: Incompatible operating system \"$OS\"."
echo " Foam${FOAM_VERSION} is currently available for "
echo " OpenFOAM ${FOAM_VERSION} is currently available for "
echo " Linux, LinuxAMD64 and SunOS only."
echo
FATALERROR=`expr $FATALERROR + 1`
FATALERROR=yes
;;
esac
# check user name
USER_NAME=$LOGNAME
if [ $(length $USER_NAME) -eq 0 ]
then
USER_NAME=$USER
fi
#
if [ `length $USER_NAME` -eq 0 ]; then
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 " Foam${FOAM_VERSION} needs a valid user name."
echo " OpenFOAM ${FOAM_VERSION} needs a valid user name."
echo " Contact your system administrator. "
echo ""
FATALERROR=`expr $FATALERROR + 1`
else
echo "`fixlen "User:" $WIDTH` ${USER_NAME}"
FATALERROR=yes
fi
#
echo ""
echo ""
if [ $FATALERROR -gt 0 ]; then
if [ -n "$FATALERROR" ]
then
echo "System check: FAIL"
echo "=================="
echo "Your system is not currently compatible with Foam installation "
echo "Your system is not currently compatible with OpenFOAM installation "
echo "requirements. Review the error messages and consult the documentation"
echo "for further instructions."
echo
else
echo "System check: PASS"
echo "=================="
echo "Continue Foam installation."
echo "Continue OpenFOAM installation."
echo
fi
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment