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