#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | foam-extend: Open Source CFD # \\ / O peration | Version: 4.1 # \\ / A nd | Web: http://www.foam-extend.org # \\/ M anipulation | For copyright notice see file Copyright #------------------------------------------------------------------------------ # License # This file is part of foam-extend. # # foam-extend is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # foam-extend is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with foam-extend. If not, see . # # Script # foamSystemCheck # # Description # Checks the machine system and the user's # personal configuration for running OpenFOAM. # #------------------------------------------------------------------------------ # STATIC VARIABLES # ~~~~~~~~~~~~~~~~ FOAM_VERSION=1.6-ext HLINE="-----------------------------------------------------------------------" WIDTH=16 unset FATALERROR # FUNCTIONS # ~~~~~~~~~ heading () { echo "" echo "$1" echo "$HLINE" } lenBase () { echo $1 | tr -d " " | wc -m | tr -d " " } length () { NOCHAR=$(lenBase $1) NOCHAR=$(expr $NOCHAR - 1) if [ $NOCHAR -eq -1 ] then NOCHAR=0 fi echo $NOCHAR } fixlen () { WORD=$1 ONELEN=$(length "$1") LDIFF=$(expr $ONELEN - $2) if [ $LDIFF -le 1 ] then while [ $LDIFF -lt 0 ] do WORD="$WORD " LDIFF=$(expr $LDIFF + 1) done echo "$WORD" else LDIFF=$(expr $LDIFF + 4) WORD=$(echo "$WORD" | cut -c${LDIFF}-) echo "...${WORD}" fi } # MAIN CODE # ~~~~~~~~~ heading "Checking basic system..." # 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 # check hostname HOST=$(uname -n) 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 FATALERROR=yes fi # 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 " OpenFOAM ${FOAM_VERSION} is currently available for " echo " Linux, LinuxAMD64 and SunOS only." echo FATALERROR=yes ;; esac # check user name USER_NAME=$LOGNAME if [ $(length $USER_NAME) -eq 0 ] then USER_NAME=$USER fi 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 fi echo "" echo "" if [ -n "$FATALERROR" ] then echo "System check: FAIL" echo "==================" 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 OpenFOAM installation." echo fi #------------------------------------------------------------------------------