#!/bin/sh #---------------------------------*- sh -*------------------------------------- # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation # \\/ M anipulation | #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. # # OpenFOAM 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. # # OpenFOAM 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 OpenFOAM. If not, see . # # Script # foamConfigurePaths # # Description # hardcode installation directory # #------------------------------------------------------------------------------ usage() { exec 1>&2 while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat< _inlineSed() { file="$1" [ -f "$file" ] || { echo "Missing file: $file" exit 1 } regexp="$2" replacement="$3" msg="$4" cmd='/^[^#]/s@'"$regexp"'@'"$replacement"'@' grep -q "$regexp" "$file" && sed -i -e "$cmd" "$file" || \ (echo "Failed: $msg in $file" && exit 1) echo "Okay: $msg in $file" return 0 } [ -f etc/bashrc ] || usage "Please run from top-level directory of installation" unset foamInstall projectName projectVersion archOption unset paraviewInstall scotchArchPath # parse options while [ "$#" -gt 0 ] do case "$1" in -h | -help | --help) usage ;; -foamInstall | --foamInstall) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" foamInstall="$2" # replace foamInstall=... _inlineSed \ etc/bashrc \ 'foamInstall=.*' \ 'foamInstall='"$foamInstall" \ "Replacing foamInstall setting by '$foamInstall'" shift 2 ;; -projectName | --projectName) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" projectName="$2" # replace WM_PROJECT_DIR=... _inlineSed \ etc/bashrc \ 'WM_PROJECT_DIR=.*' \ 'WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/'"$projectName" \ "Replacing WM_PROJECT_DIR setting by $projectName" shift 2 ;; --projectVersion) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" projectVersion="$2" # replace WM_PROJECT_VERSION=... echo "Replacing WM_PROJECT_VERSION setting by $projectVersion" _inlineSed \ etc/bashrc \ 'WM_PROJECT_VERSION=.*' \ 'WM_PROJECT_VERSION='"$projectVersion" \ "Replacing WM_PROJECT_VERSION setting by $projectVersion" shift 2 ;; -archOption | --archOption) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" archOption="$2" current_archOption=`grep WM_ARCH_OPTION= etc/bashrc | sed "s/export WM_ARCH_OPTION=//"` if [ "$archOption" != "$current_archOption" ] then # replace WM_ARCH_OPTION=... _inlineSed \ etc/bashrc \ 'WM_ARCH_OPTION=.*' \ 'WM_ARCH_OPTION='"$archOption" \ "Replacing WM_ARCH_OPTION setting by '$archOption'" else echo "WM_ARCH_OPTION already set to $archOption" fi shift 2 ;; -paraviewInstall | --paraviewInstall) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" paraviewInstall="$2" # replace ParaView_DIR=... _inlineSed \ etc/config.sh/paraview \ 'ParaView_DIR=.*' \ 'ParaView_DIR='"$paraviewInstall" \ "Replacing ParaView_DIR setting by '$paraviewInstall'" shift 2 ;; -paraviewVersion | --paraviewVersion) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" paraviewVersion="$2" # replace ParaView_VERSION=... _inlineSed \ etc/config.sh/paraview \ 'ParaView_VERSION=.*' \ 'ParaView_VERSION='"$paraviewVersion" \ "Replacing ParaView_VERSION setting by '$paraviewVersion'" shift 2 ;; -scotchVersion | --scotchVersion) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" scotchVersion="$2" _inlineSed \ etc/config.sh/scotch \ 'SCOTCH_VERSION=.*' \ 'SCOTCH_VERSION='"$scotchVersion" \ "Replacing SCOTCH_VERSION setting by '$scotchVersion'" shift 2 ;; -scotchArchPath | --scotchArchPath) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" scotchArchPath="$2" _inlineSed \ etc/config.sh/scotch \ 'SCOTCH_ARCH_PATH=.*' \ 'SCOTCH_ARCH_PATH='"$scotchArchPath" \ "Replacing SCOTCH_ARCH_PATH setting by '$scotchArchPath'" shift 2 ;; *) usage "unknown option/argument: '$*'" ;; esac done [ -n "$foamInstall" -o -n "$projectName" -o -n "$projectVersion" -o -n "$archOption" \ -o -n "$paraviewInstall" -o -n "$paraviewVersion" \ -o -n "$scotchVersion" -o -n "$scotchArchPath" \ ] || usage "Please specify at least one configure option" #echo "Replacing WM_PROJECT setting by '$projectName'" #sed -i -e 's@WM_PROJECT=.*@WM_PROJECT='"$projectName@" etc/bashrc # Set WM_MPLIB=SYSTEMOPENMPI always _inlineSed \ etc/bashrc \ 'export WM_MPLIB=.*' \ 'export WM_MPLIB=SYSTEMOPENMPI' \ "Replacing WM_MPLIB setting by 'SYSTEMOPENMPI'" ## set WM_COMPILER_TYPE=system always #_inlineSed \ # etc/bashrc \ # 'WM_COMPILER_TYPE=.*' \ # 'WM_COMPILER_TYPE=system' \ # "Replacing WM_COMPILER_TYPE setting by 'system'" #------------------------------------------------------------------------------