#!/bin/ksh MALL_CONFIGURATION_FILE=$1 FATAL_ERROR=1000 # # print debug string to appropriate location # # $1=debug string to be printed # print_debug() { ./debug_handler.ksh "$0" "mall" "$1" "$DEBUG_LOG_DIRECTORY" "$DEBUG_LOG_FILE" "$LOG_DEBUG" } # # # # print_abort_message() { printf "\n" printf "\n" printf "Aborting update\n" printf "\n" } case $# in 0) ## No parameters passed in. Improper use of script. print_abort_message printf "No configuration file indicated.\n" printf "usage: start_update_mall_sc config_mall.aa\n" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 ;; 1) ## Only a mall config file was passed in. ## Check that the mall config file actually exists. if ! test -e "$MALL_CONFIGURATION_FILE" then print_abort_message printf "The following mall configuration file does not exist:\n" printf "%s\n" $MALL_CONFIGURATION_FILE ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi ;; *) ## Illegal number of arguments print_abort_message printf "Illegal number of arguments passed.\n" printf "usage: start_update_mall_sc config_mall.aa\n" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 ;; esac VALUE_FOUND="FALSE" while read -r field value do if test "X$field" = "XLOG_DEBUG:" then LOG_DEBUG=$value VALUE_FOUND="TRUE" elif test "X$field" = "XDEBUG_LOG_DIRECTORY:" then DEBUG_LOG_DIRECTORY=$value VALUE_FOUND="TRUE" elif test "X$field" = "XDEBUG_LOG_FILE:" then DEBUG_LOG_FILE=$value VALUE_FOUND="TRUE" fi if test "$VALUE_FOUND" = "TRUE" then ##printf "%s %s\n" "$field" "$value" VALUE_FOUND="FALSE" fi done < $MALL_CONFIGURATION_FILE ## Setup debug log file if needed if test "X$LOG_DEBUG" = "XYES" then if ! (./setup_debug_log_file.ksh $DEBUG_LOG_DIRECTORY $DEBUG_LOG_FILE) then print_abort_message printf "Unable to setup the log file.\n" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi fi VALUE_FOUND="FALSE" while read -r field value do if test "X$field" = "XSHOPSITE_DIRECTORY:" then SHOPSITE_DIRECTORY=$value VALUE_FOUND="TRUE" elif test "X$field" = "XSHOPPING_CART_DIRECTORY:" then SHOPPING_CART_DIRECTORY=$value VALUE_FOUND="TRUE" elif test "X$field" = "XUNIX_WEB_USER_ID:" then UNIX_WEB_USER_ID=$value VALUE_FOUND="TRUE" elif test "X$field" = "XUNIX_WEB_GROUP_ID:" then UNIX_WEB_GROUP_ID=$value VALUE_FOUND="TRUE" elif test "X$field" = "XPATH_TO_TAR:" then PATH_TO_TAR=$value VALUE_FOUND="TRUE" elif test "X$field" = "XSHOPSITE_IMAGE_DIR:" then SHOPSITE_IMAGE_DIR=$value VALUE_FOUND="TRUE" elif test "X$field" = "XSHOPSITE_IMAGE_URL:" then SHOPSITE_IMAGE_URL=$value VALUE_FOUND="TRUE" elif test "X$field" = "XBACKUP_ON_UPDATE:" then BACKUP_ON_UPDATE=$value VALUE_FOUND="TRUE" elif test "X$field" = "XMALL_TYPE:" then MALL_TYPE=$value VALUE_FOUND="TRUE" fi if test "$VALUE_FOUND" = "TRUE" then print_debug "$field $value" VALUE_FOUND="FALSE" fi done < $MALL_CONFIGURATION_FILE if ! test "$SHOPSITE_DIRECTORY" then printf "Error: No value provided for SHOPSITE_DIRECTORY.\n" error_encountered="TRUE" fi if ! test "$SHOPPING_CART_DIRECTORY" then printf "Error: No value provided for SHOPPING_CART_DIRECTORY.\n" error_encountered="TRUE" fi if ! test "$UNIX_WEB_USER_ID" then printf "Error: No value provided for UNIX_WEB_USER_ID.\n" error_encountered="TRUE" fi if ! test "$UNIX_WEB_GROUP_ID" then printf "Error: No value provided for UNIX_WEB_GROUP_ID.\n" error_encountered="TRUE" fi if ! test "$PATH_TO_TAR" then printf "Error: No value provided for PATH_TO_TAR.\n" error_encountered="TRUE" fi if ! test "$BACKUP_ON_UPDATE" then printf "Error: No value provided for BACKUP_ON_UPDATE.\n" error_encountered="TRUE" fi if ! test "$MALL_TYPE" then printf "Error: No value provided for MALL_TYPE.\n" error_encountered="TRUE" fi if test "$error_encountered" then printf "Values must be provided for the previously listed\n" printf "variables in the config_mall.aa file\n" print_abort_message ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi ## Check user input to make sure it makes sense and is do-able. if ! (./check_setup_mall_sc.ksh "UPDATE" "$SHOPSITE_DIRECTORY" "$SHOPPING_CART_DIRECTORY" "$SHOPSITE_IMAGE_DIR" "$UNIX_WEB_USER_ID" "$UNIX_WEB_GROUP_ID" "$PATH_TO_TAR" "$LOG_DEBUG" "$DEBUG_LOG_DIRECTORY" "$DEBUG_LOG_FILE") then print_debug "Aborting update:" print_debug "FAILED: ./check_setup_mall_sc.ksh" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi ## Check to make sure all looks okay if (./wwwinstall.cgi "-action" "checkpermissions" "-ss" "$SHOPSITE_DIRECTORY" "-sc" "$SHOPPING_CART_DIRECTORY" "-im" "$SHOPSITE_IMAGE_DIR" "-imurl" "$SHOPSITE_IMAGE_URL" "-pathToTar" "$PATH_TO_TAR") then print_debug "Aborting update:" print_debug "FAILED: ./wwwinstall.cgi -action checkpermissions" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" printf "\n\n ** This mall can not be upgraded until **\n" printf "** the problems above have been taken care of. **\n" exit 1 fi ## Update the mall. if ! (./wwwinstall.cgi "-action" "updateMall" "-shopSiteDirectory" "$SHOPSITE_DIRECTORY" "-shoppingCartDirectory" "$SHOPPING_CART_DIRECTORY" "-shopsite_image_dir" "$SHOPSITE_IMAGE_DIR" "-shopsite_image_url" "$SHOPSITE_IMAGE_URL" "-pathToTar" "$PATH_TO_TAR" "-type" "$MALL_TYPE" "-backup" "$BACKUP_ON_UPDATE") then print_debug "Aborting update:" print_debug "FAILED: ./wwwinstall.cgi" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi ## Set permissions and ownership on all ShopSite mall files. if ! (./file_settings_mall_sc.ksh "$SHOPSITE_DIRECTORY" "$SHOPPING_CART_DIRECTORY" "$SHOPSITE_IMAGE_DIR" "$UNIX_WEB_USER_ID" "$UNIX_WEB_GROUP_ID" "$DEBUG_LOG_DIRECTORY" "$DEBUG_LOG_FILE" "$LOG_DEBUG") then print_debug "Aborting update:" print_debug "FAILED: ./file_settings_mall_sc.ksh" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi ## Successfully completed the update. exit 0