#!/bin/ksh # # set up internal parameters # SHOPSITE_DIRECTORY=$1 SHOPSITE_URL=$2 SHOPPING_CART_DIRECTORY=$3 SHOPPING_CART_URL=$4 SHOPSITE_STORE_ID=$5 STORE_FRONT_URL=$6 DATA_DIRECTORY=$7 HTML_DIRECTORY=$8 SELLER_USER_ID=$9 SELLER_GROUP_ID=${10} UNIX_WEB_USER_ID=${11} UNIX_WEB_GROUP_ID=${12} PATH_TO_TAR=${13} SELLER_EMAIL=${14} PATH_TO_SENDMAIL=${15} SERVER_LOG_PATH=${16} SERVER_LOG_NAME=${17} USE_SECURE_SHOPSITE=${18} SECURE_SHOPSITE_URL=${19} USE_SECURE_SHOPPING_CART=${20} SECURE_SHOPPING_CART_URL=${21} STORE_CURRENCY=${22} MERCHANT_LOCALE=${23} BUYER_LOCALE=${24} SHOPSITE_IMAGE_DIR=${25} SHOPSITE_IMAGE_URL=${26} STORE_LANG_PACK=${27} SECURE_SHOPSITE_IMAGE_URL=${28} DEBUG_LOG_DIRECTORY=${29} DEBUG_LOG_FILE=${30} LOG_DEBUG=${31} FATAL_ERROR=1000 # # Functions # # # print debug string to appropriate location # # $1=debug string to be printed # print_debug() { ./debug_handler.ksh "$0" "$SHOPSITE_STORE_ID" "$1" "$DEBUG_LOG_DIRECTORY" "$DEBUG_LOG_FILE" "$LOG_DEBUG" } # # Populate a directory from a tar file. # # populate_dir $1=directory $2=tar file name # populate_dir() { INSTALL_DIRECTORY=$PWD cd $1 if ! ($PATH_TO_TAR -xf $INSTALL_DIRECTORY/${2}.tar) then cd $INSTALL_DIRECTORY print_debug "Error: Could not untar the file: $INSTALL_DIRECTORY/$2.tar" print_debug " Store installation aborted." print_debug ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 else cd $INSTALL_DIRECTORY print_debug "Successfully populated the directory:" print_debug "$1" print_debug fi } # # Create file links # # link_file $1=file to link to $2=symbolic link # link_file() { if test -e ${2} then rm ${2} fi if ! (ln -s ${1} ${2}) then print_debug "Error: Could not link file:" print_debug " $2 to" print_debug " $1" print_debug " Store installation aborted." print_debug ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 else print_debug "Successfully linked the file:" print_debug "$2 to" print_debug "$1" print_debug fi } ############################################## ######### ######### ######### Actual code starts here. ######### ######### ######### ############################################## # # # # Untar data.tar into the data directory. print_debug "populate_dir $DATA_DIRECTORY data" populate_dir $DATA_DIRECTORY data # On a fresh install, delete "pagepalette2.dat" # which is used only for updating old ShopSite # stores (pre 4.1). if test -e pagepalette2.dat then rm -f pagepalette2.dat fi # Copy ${SHOPSITE_STORE_ID}.auth to store.bak in the installation directory cp -pr ./${SHOPSITE_STORE_ID}.auth ./store.bak # Move ${SHOPSITE_STORE_ID}.auth to ${SHOPSITE_STORE_ID}.auth in the data directory mv -f ./${SHOPSITE_STORE_ID}.auth $DATA_DIRECTORY/${SHOPSITE_STORE_ID}.auth # Create links to SHOPSITE_STORE_ID.auth in the # ShopSite and shopping cart directories print_debug "link_file $DATA_DIRECTORY/$SHOPSITE_STORE_ID.auth $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.auth" link_file ${DATA_DIRECTORY}/${SHOPSITE_STORE_ID}.auth ${SHOPSITE_DIRECTORY}/${SHOPSITE_STORE_ID}.auth print_debug "link_file $DATA_DIRECTORY/$SHOPSITE_STORE_ID.auth $SHOPPING_CART_DIRECTORY/$SHOPSITE_STORE_ID.auth" link_file ${DATA_DIRECTORY}/${SHOPSITE_STORE_ID}.auth ${SHOPPING_CART_DIRECTORY}/${SHOPSITE_STORE_ID}.auth print_debug "Modify ufooter.dat file in the data directory" # Modify ufooter.dat file in the data directory touch $DATA_DIRECTORY/.tmp_ufooter_dat #printf "
\"Shopsite\" " "$STORE_FRONT_URL" > $DATA_DIRECTORY/.tmp_ufooter_dat mv -f $DATA_DIRECTORY/.tmp_ufooter_dat $DATA_DIRECTORY/ufooter.dat print_debug "Modify storelink.dat file in the data directory" # Modify storelink.dat file in the data directory touch $DATA_DIRECTORY/.tmp_storelink_dat printf " " "$STORE_FRONT_URL" > $DATA_DIRECTORY/.tmp_storelink_dat mv -f $DATA_DIRECTORY/.tmp_storelink_dat $DATA_DIRECTORY/storelink.dat # Setup the paydata.aa file in the DATA_DIRECTORY #print_debug "Setting Currency token in the ${DATA_DIRECTORY}/paydata.aa file" #touch ${DATA_DIRECTORY}/paydata.aa.new #while read -r field value #do # if ! test "X$field" = "XCurrency:" # then # printf "%s %s\n" "$field" "$value" >> ${DATA_DIRECTORY}/paydata.aa.new # fi #done < ${DATA_DIRECTORY}/paydata.aa #printf "Currency: $\n" # Copy the new file over the old file. #mv -f ${DATA_DIRECTORY}/paydata.aa.new ${DATA_DIRECTORY}/paydata.aa print_debug "Set regen file to \"all\" in the data directory" # Set regen file to "all" touch $DATA_DIRECTORY/.tmp_update_dat printf "Full Regen" > $DATA_DIRECTORY/.tmp_update_dat mv -f $DATA_DIRECTORY/.tmp_update_dat $DATA_DIRECTORY/update.dat print_debug "Set Server log path and Server log name" print_debug "in stats/statconfig.aa in the data directory" # Append settings to $DATA_DIRECTORY/stats/statconfig.aa # Copy everything to a new file, except for the lines we want to append. touch $DATA_DIRECTORY/stats/.statconfig.aa.new while read -r field1 field2 field3 value do if ! test "X$field1" = "XServer" then printf "%s %s %s %s\n" "$field1" "$field2" "$field3" "$value" >> $DATA_DIRECTORY/stats/.statconfig.aa.new elif ! test "X$field2" = "Xlog" then printf "%s %s %s %s\n" "$field1" "$field2" "$field3" "$value" >> $DATA_DIRECTORY/stats/.statconfig.aa.new elif ! test "X$field3" = "Xpath:" && ! test "X$field3" = "Xname:" then printf "%s %s %s %s\n" "$field1" "$field2" "$field3" "$value" >> $DATA_DIRECTORY/stats/.statconfig.aa.new fi done < $DATA_DIRECTORY/stats/statconfig.aa # Append the lines we want to the $DATA_DIRECTORY/stats/statconfig.aa.new file. printf "Server log path: %s\n" "$SERVER_LOG_PATH" >> $DATA_DIRECTORY/stats/.statconfig.aa.new printf "Server log name: %s\n" "$SERVER_LOG_NAME" >> $DATA_DIRECTORY/stats/.statconfig.aa.new # Move the new file over the old file. mv -f $DATA_DIRECTORY/stats/.statconfig.aa.new $DATA_DIRECTORY/stats/statconfig.aa # Untar html.tar into the HTML directory. print_debug "populate_dir $HTML_DIRECTORY html" populate_dir $HTML_DIRECTORY html # If index.html does not exist, then rename abcd1234.html # to index.html else remove abcd1234.html print_debug print_debug "Ensuring that there is an index.html file for the new store" if test -e "${HTML_DIRECTORY}/_abcd1234.html" then if test -e "${HTML_DIRECTORY}/index.html" # don't copy over an index.html file then print_debug print_debug "index.html file already exists." print_debug rm ${HTML_DIRECTORY}/_abcd1234.html else print_debug print_debug "No index.html file exists." print_debug "Creating default index.html" print_debug mv -f ${HTML_DIRECTORY}/_abcd1234.html ${HTML_DIRECTORY}/index.html touch ${DATA_DIRECTORY}/wizard.aa printf "indexhtml_shopsite: Yes\n" >> ${DATA_DIRECTORY}/wizard.aa printf "Theme: 50\n" >> ${DATA_DIRECTORY}/wizard.aa fi fi if test "$USE_SECURE_SHOPSITE" = "YES" then USE_SECURE_SHOPSITE=checked fi if test "$USE_SECURE_SHOPSITE" = "yes" then USE_SECURE_SHOPSITE=checked fi if test "$USE_SECURE_SHOPPING_CART" = "YES" then USE_SECURE_SHOPPING_CART=checked fi if test "$USE_SECURE_SHOPPING_CART" = "yes" then USE_SECURE_SHOPPING_CART=checked fi ## Create [SHOPSITE_STORE_ID].aa in the ShopSite directory. print_debug "Creating $SHOPSITE_STORE_ID.aa file in the ShopSite directory" print_debug printf "mystore: %s/index.html\n" "$STORE_FRONT_URL" > $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "outputurl: %s\n" "$STORE_FRONT_URL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "outputdir: %s\n" "$HTML_DIRECTORY" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "datadir: %s\n" "$DATA_DIRECTORY" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "bo_dir: %s\n" "$SHOPSITE_DIRECTORY" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "bo_use_security: %s\n" "$USE_SECURE_SHOPSITE" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "bo_reg_url: %s\n" "$SHOPSITE_URL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "bo_secure_url: %s\n" "$SECURE_SHOPSITE_URL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_dir: %s\n" "$SHOPPING_CART_DIRECTORY" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_prompt_orderinst: %s\n" "checked" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_reg_url: %s\n" "$SHOPPING_CART_URL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_secure_url: %s\n" "$SECURE_SHOPPING_CART_URL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_use_security: %s\n" "$USE_SECURE_SHOPPING_CART" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sb_prompt_comments: %s\n" "checked" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "from_addr: %s\n" "$SELLER_EMAIL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "customcgi: \n" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "ccprocessor: \n" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "sendmail_loc: %s\n" "$PATH_TO_SENDMAIL" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "AdvancedUser: No\n" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa #printf "decimal: ${SHOPSITE_STORE_DECIMAL_SYMBOL}\n" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa #printf "separator: ${SHOPSITE_STORE_SEPARATOR_SYMBOL}\n" >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "currency: ${STORE_CURRENCY}|\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "altcurrency: ||||\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "MerchantLocale: ${MERCHANT_LOCALE}|\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "BuyerLocale: ${BUYER_LOCALE}|\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "image_dir: ${SHOPSITE_IMAGE_DIR}\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "image_url: ${SHOPSITE_IMAGE_URL}\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa printf "image_url_secure: ${SECURE_SHOPSITE_IMAGE_URL}\n" \ >> $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa # Create links to [SHOPSITE_STORE_ID].aa in the shopping cart directory. print_debug "link_file $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa $SHOPPING_CART_DIRECTORY/$SHOPSITE_STORE_ID.aa" link_file $SHOPSITE_DIRECTORY/$SHOPSITE_STORE_ID.aa $SHOPPING_CART_DIRECTORY/$SHOPSITE_STORE_ID.aa ## Install a language pack. if (./wwwinstall.cgi "-action" "installLangScriptFile" "-store_id" "$SHOPSITE_STORE_ID" "-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" "-locale" "$BUYER_LOCALE") then print_debug "Not able to install a language pack:" 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 store files. if ! (./file_settings_store_sc.ksh "$SHOPSITE_DIRECTORY" "$SHOPSITE_STORE_ID" "$DATA_DIRECTORY" "$HTML_DIRECTORY" "$SELLER_USER_ID" "$SELLER_GROUP_ID" "$UNIX_WEB_USER_ID" "$UNIX_WEB_GROUP_ID" "$DEBUG_LOG_DIRECTORY" "$DEBUG_LOG_FILE" "$LOG_DEBUG") then print_debug "Aborting installation:" print_debug "FAILED: ./file_settings_store_sc.ksh" ERROR=`./error_handler.ksh $FATAL_ERROR` printf "ERROR: $ERROR\n" exit 1 fi exit 0