Index: openacs-4/etc/install/functions.sh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/etc/install/functions.sh,v
diff -u -r1.1 -r1.2
--- openacs-4/etc/install/functions.sh	4 Sep 2003 16:51:26 -0000	1.1
+++ openacs-4/etc/install/functions.sh	8 Sep 2003 12:19:17 -0000	1.2
@@ -1,10 +1,24 @@
 # Access config parameters in the TCL file through this function
 
 get_config_param () {
-    echo "source $config_file; puts [set $1]" | tclsh
+    echo "source $source_config_file; puts [set $1]" | tclsh
 }
 
+create_override_config_file () {
+    server=$1
+    config_file=$2
 
+    override_config_file=/tmp/config-$server-$$.tcl
+    # Only write the source_config_file if this hasn't already been done
+    if [ ! -a $override_config_file ]; then
+      echo "set server $server" > $override_config_file
+      cat $config_file | egrep -v '^[[:space:]]*set[[:space:]]+server[[:space:]]+' >> $override_config_file
+      export source_config_file=$override_config_file
+else  
+      export source_config_file=$config_file    
+    fi
+}
+
 # present an interactive continue prompt.  
 # Quit the script if user chooses no.
 prompt_continue () {
Index: openacs-4/etc/install/install-and-alert.sh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/etc/install/install-and-alert.sh,v
diff -u -r1.2 -r1.3
--- openacs-4/etc/install/install-and-alert.sh	5 Sep 2003 14:09:08 -0000	1.2
+++ openacs-4/etc/install/install-and-alert.sh	8 Sep 2003 12:19:18 -0000	1.3
@@ -19,21 +19,42 @@
     source ~/.bashrc
 fi
 
-# Clumsy argument handling, can't use shift as I'm passing
-# the arguments to install.sh
-config_file_next=0
-for arg in $@;
-do
-    if [ "$config_file_next" == "1" ]; then
-        export config_file="$arg"
-        config_file_next=0
-    fi
-
-    if [ "$arg" == "--config-file" ]; then        
-        config_file_next="1"
-    fi
+# Look for two-part command line arguments
+# Also, we need to look for command-line setting for config file
+# before we load the config file
+config_val_next=0
+server_next=0
+export config_file="config.tcl"
+server_overridden="no"
+for arg in "$@"
+  do
+  if [ $config_val_next == "1" ]; then
+      export config_file=$arg
+      config_val_next=0
+  fi
+  if [ $server_next == "1" ]; then
+      # Overrides server setting in config file
+      export server=$arg
+      server_next=0
+      server_overridden="yes"
+  fi
+  if [ $arg == "--config-file" ]; then
+      config_val_next=1
+  fi
+  if [ $arg == "--server" ]; then
+      server_next=1
+  fi
 done
 
+# Create a config file with overridden server name if it was
+# provided on the command line
+if parameter_true "$server_overridden"; then
+    echo "$0: Overriding config server setting with $server"
+    create_override_config_file $server $config_file
+else
+    export source_config_file=$config_file
+fi
+
 alert_keyword=`get_config_param alert_keyword`
 send_alert_script=`get_config_param send_alert_script`
 export server=`get_config_param server`
Index: openacs-4/etc/install/install.sh
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/etc/install/install.sh,v
diff -u -r1.11 -r1.12
--- openacs-4/etc/install/install.sh	8 Sep 2003 08:53:59 -0000	1.11
+++ openacs-4/etc/install/install.sh	8 Sep 2003 12:19:18 -0000	1.12
@@ -13,6 +13,7 @@
 
 # DEBUG: If any command fails - exit
 set -e
+set -x
 
 # Set the script directory to the current dir for convenience
 script_path=$(dirname $(which $0))
@@ -41,17 +42,18 @@
 config_val_next=0
 server_next=0
 export config_file="config.tcl"
-export server="service0"
-
+server_overridden="no"
 for arg in "$@"
   do
   if [ $config_val_next == "1" ]; then
       export config_file=$arg
       config_val_next=0
   fi
   if [ $server_next == "1" ]; then
+      # Overrides server setting in config file
       export server=$arg
       server_next=0
+      server_overridden="yes"
   fi
   if [ $arg == "--config-file" ]; then
       config_val_next=1
@@ -61,6 +63,15 @@
   fi
 done
 
+# Create a config file with overridden server name if it was
+# provided on the command line
+if parameter_true "$server_overridden"; then
+    echo "$0: Overriding config server setting with $server"
+    create_override_config_file $server $config_file
+else
+    export source_config_file=$config_file
+fi
+
 usage="$0 [OPTIONS]
     --server      Server name.  Overrides config file.
     --config-file Sets up information about the server and database used (see config.tcl.in). Defaults to config.tcl
@@ -91,11 +102,6 @@
 do_install="yes"
 server=`get_config_param server`
 
-# command-line settings override config file settings
-if [ -n $command_line_server ]; then
-    export server="$command_line_server"
-fi
-
 while [ -n "$1" ] ; do
    case "$1" in
       "--config-file")        
@@ -212,7 +218,7 @@
     #Oracle
     # Need to su to login shell for sqlplus to be in path. Should maybe make ORA_HOME
     # a config param instead.
-    su - oracle -c "cd $script_path; config_file=$config_file ./oracle/recreate-user.sh";
+    su - oracle -c "cd $script_path; config_file=$source_config_file ./oracle/recreate-user.sh";
 fi
 
 # Check out new files
@@ -239,7 +245,7 @@
     fi
 	
     echo "$0: Checking out OpenACS at $(date)"
-    config_file=$config_file dotlrn=$dotlrn ./checkout.sh
+    config_file=$source_config_file dotlrn=$dotlrn ./checkout.sh
 
     # The post_checkout script can copy back any files (AOLServer config files,
     # log files etc.) under the new source tree, and apply any patches
@@ -293,7 +299,7 @@
 
   # Install OpenACS
   echo "$0: Starting installation of OpenACS at $(date)"
-  ${tclwebtest_dir}/tclwebtest -config_file $config_file openacs-install.test
+  ${tclwebtest_dir}/tclwebtest -config_file $source_config_file openacs-install.test
   
   # Restart the server
   echo "$0: Restarting server at $(date)"
@@ -315,17 +321,17 @@
   if parameter_true "$dotlrn_demo_data"; then
       # Do .LRN demo data setup
       echo "$0: Starting basic setup of .LRN at $(date)"
-      ${tclwebtest_dir}/tclwebtest -config_file $config_file dotlrn-basic-setup.test
+      ${tclwebtest_dir}/tclwebtest -config_file $source_config_file dotlrn-basic-setup.test
   fi
       
   if parameter_true $crawl_links; then
       # Search for broken pages
       echo "$0: Starting to crawl links to search for broken pages at $(date)"
-      ${tclwebtest_dir}/tclwebtest -config_file $config_file dotlrn-links-check.test
+      ${tclwebtest_dir}/tclwebtest -config_file $source_config_file dotlrn-links-check.test
   fi
 
   # Run the Tcl API tests
-  ${tclwebtest_dir}/tclwebtest -config_file $config_file tcl-api-test.test
+  ${tclwebtest_dir}/tclwebtest -config_file $source_config_file tcl-api-test.test
 
   if [ $database == "postgres" ]; then
       # Run vacuum analyze