From 603aa1e61c2290cfa48fd5b86c918fb1397248b3 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Wed, 22 Dec 2010 15:41:51 +0100
Subject: [PATCH] ENH: preserve command-line settings in FOAM_SETTINGS

---
 bin/mpirunDebug      | 7 ++++---
 etc/bashrc           | 3 ++-
 etc/cshrc            | 3 ++-
 wmake/wmakeScheduler | 7 ++++---
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/bin/mpirunDebug b/bin/mpirunDebug
index 3c4aaf6a9a3..bd207e0b8e0 100755
--- a/bin/mpirunDebug
+++ b/bin/mpirunDebug
@@ -142,14 +142,15 @@ fi
 # Construct test string for remote execution.
 # Source OpenFOAM settings if OpenFOAM environment not set.
 # attempt to preserve the installation directory 'FOAM_INST_DIR'
+# use FOAM_SETTINGS to pass command-line settings
 if [ "$FOAM_INST_DIR" ]
 then
-    sourceFoam='[ "$WM_PROJECT" ] || '"FOAM_INST_DIR=$FOAM_INST_DIR . $sourceFoam"
+    sourceFoam='[ "$WM_PROJECT" ] || '"FOAM_INST_DIR=$FOAM_INST_DIR . $sourceFoam $FOAM_SETTINGS"
 else
-    sourceFoam='[ "$WM_PROJECT" ] || '". $sourceFoam"
+    sourceFoam='[ "$WM_PROJECT" ] || '". $sourceFoam $FOAM_SETTINGS"
 fi
 
-echo "**sourceFoam:$sourceFoam"
+echo "**sourceFoam:$sourceFoam $FOAM_SETTINGS"
 
 rm -f $PWD/mpirun.schema
 touch $PWD/mpirun.schema
diff --git a/etc/bashrc b/etc/bashrc
index 8bbc1b2c2dd..2b0e3d0be71 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -89,7 +89,8 @@ _foamSource()
 # Add in preset user or site preferences:
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.sh`
 
-# Evaluate command-line parameters
+# Evaluate command-line parameters and record settings for later
+export FOAM_SETTINGS="$@"
 while [ $# -gt 0 ]
 do
     case "$1" in
diff --git a/etc/cshrc b/etc/cshrc
index 719a211f532..0ef3f0ce78c 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -74,7 +74,8 @@ alias _foamSource 'if ($?FOAM_VERBOSE && $?prompt) echo "Sourcing: \!*"; if (\!*
 # Add in preset user or site preferences:
 _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile prefs.csh`
 
-# Evaluate command-line parameters
+# Evaluate command-line parameters and record settings for later
+setenv FOAM_SETTINGS "${*}"
 while ( $#argv > 0 )
     switch ($argv[1])
     case *=:
diff --git a/wmake/wmakeScheduler b/wmake/wmakeScheduler
index fc60b9be4dd..919c34ea050 100755
--- a/wmake/wmakeScheduler
+++ b/wmake/wmakeScheduler
@@ -108,19 +108,20 @@ fi
 # Construct test string for remote execution.
 # Source WM_PROJECT settings if WM_PROJECT environment not set.
 # attempt to preserve the installation directory 'FOAM_INST_DIR'
+# use FOAM_SETTINGS to pass command-line settings
 case $sourceFoam in
 */bashrc)
     if [ "$FOAM_INST_DIR" ]
     then
-        sourceFoam='[ "$WM_PROJECT" ] || '"FOAM_INST_DIR=$FOAM_INST_DIR . $sourceFoam"
+        sourceFoam='[ "$WM_PROJECT" ] || '"FOAM_INST_DIR=$FOAM_INST_DIR . $sourceFoam $FOAM_SETTINGS"
     else
-        sourceFoam='[ "$WM_PROJECT" ] || '". $sourceFoam"
+        sourceFoam='[ "$WM_PROJECT" ] || '". $sourceFoam $FOAM_SETTINGS"
     fi
     ;;
 
 */cshrc)
     # TODO: csh equivalent to bash code (preserving FOAM_INST_DIR)
-    sourceFoam='if ( ! $?WM_PROJECT ) source '"$sourceFoam"
+    sourceFoam='if ( ! $?WM_PROJECT ) source '"$sourceFoam $FOAM_SETTINGS"
     ;;
 esac
 
-- 
GitLab