Linux BASH Scripts

Last updated on
30 April 2025

You are browsing documentation for an older version of Drupal, which is not supported any longer, and the information may not be correct. See current documentation for Contributed modules

For those wanting a quick start to using the Drupal Toolkit, the following Linux BASH scripts are provided for each installation method. These scripts provide a command-line interface to assist you in downloading, extracting, and installing all requirements.


XC Manual Installation

#!/bin/sh
#set -x
#
# Downloads and prepares all components needed for eXtensible Catalog Drupal Toolkit demo site
#

DRUPAL_VERSION=6.25
CURRENT_DIR=`pwd`

get_web_directory() {
  echo -n 'What is the Apache HTTP server web directory? (/var/www): '
  read WWW_DIR

  if [ "$WWW_DIR" = "" ]; then
    WWW_DIR=/var/www
  fi
}

get_drupal_name() {
  echo -n 'What will be the directory name of your new Drupal? (xc-6.x-1.2): '
  read DRUPAL_NAME

  if [ "$DRUPAL_NAME" = "" ]; then
    DRUPAL_NAME=xc-6.x-1.2
  fi
}

get_solr_parent_dir() {
  echo -n 'In which directory to put Apache Solr? ('$HOME'/solr): '
  read SOLR_PARENT_DIR

  if [ "$SOLR_PARENT_DIR" = "" ]; then
    SOLR_PARENT_DIR=$HOME/solr
  fi
}

get_solr_version() {
  echo "Select Apache Solr version:"
  echo " [1] = 1.4.1"
  echo " [2] = 3.1.0"
  echo " [3] = 3.2.0"
  echo " [4] = 3.3.0"
  echo "Selection: "
  read NUMBER

  SOLR_VERSION=3.3.0
  case "$NUMBER" in
    '1') SOLR_VERSION=1.4.1;;
    '2') SOLR_VERSION=3.1.0;;
    '3') SOLR_VERSION=3.2.0;;
    '4') SOLR_VERSION=3.3.0;;
  esac
}

get_download_directory() {
  echo -n 'The directory where the script will download the necessay applications ('$HOME'/download/xc-6.x-1.2): '
  read DOWNLOAD_DIR

  if [ "$DOWNLOAD_DIR" = "" ]; then
    DOWNLOAD_DIR=$HOME/download/xc-6.x-1.2
  fi
}

get_mysql_settings() {
  echo -n 'The name of MySQL database for the new Drupal: (xc_6x12) '
  read DRUPAL_DB_NAME
  if [ "$DRUPAL_DB_NAME" = "" ]; then
    DRUPAL_DB_NAME=xc_6x12
  fi

  echo -n 'A MySQL user name for the Drupal database: (xc_user) '
  read DRUPAL_DB_USER
  if [ "$DRUPAL_DB_USER" = "" ]; then
    DRUPAL_DB_USER=xc_user
  fi

  echo -n "The password of MySQL user for the Drupal database: (xCpa55) "
  read DRUPAL_DB_PASS
  if [ "$DRUPAL_DB_PASS" = "" ]; then
    DRUPAL_DB_PASS=xCpa55
  fi

  echo -n 'The admin user of MySQL (input hidden): '
  stty -echo
  read MYSQL_USER
  stty echo
  echo ""
  if [ "$MYSQL_USER" = "" ]; then
    echo "Please enter the admin user name"
    exit 1
  fi

  echo -n 'The password of MySQL admin (input hidden): '
  stty -echo
  read MYSQL_PASS
  stty echo
  echo ""
  if [ "$MYSQL_PASS" = "" ]; then
    echo "Please enter the admin password"
    exit 1
  fi
}

read_variables() {
  echo "Please answer the following questions:"
  echo ""
  get_web_directory
  get_drupal_name
  get_solr_parent_dir
  get_solr_version
  get_download_directory
  get_mysql_settings
}

set_variables() {
  WWW_DIR=/var/www
  DRUPAL_NAME=xc-6.x-1.2
  SOLR_PARENT_DIR=$HOME/solr
  SOLR_VERSION=3.3.0
  DOWNLOAD_DIR=$HOME/download/xc-6.x-1.2
  DRUPAL_DB_NAME=xc_6x12
  DRUPAL_DB_USER=xc_user
  DRUPAL_DB_PASS=xCpa55
  MYSQL_USER=
  MYSQL_PASS=
}

flush() {
  echo "Your settings"
  echo ""
  echo 'Web root directory:' $WWW_DIR
  echo 'Drupal name:' $DRUPAL_NAME
  echo 'Solr parent directory:' $SOLR_PARENT_DIR
  echo 'Solr version:' $SOLR_VERSION
  echo 'Download directory:' $DOWNLOAD_DIR

  echo 'The name of MySQL database for the new Drupal:' $DRUPAL_DB_NAME
  echo 'The MySQL username for the Drupal database:' $DRUPAL_DB_USER
  echo 'The password of MySQL user for the Drupal database:' $DRUPAL_DB_PASS
}

droptables() {
  # this hack is from http://www.thingy-ma-jig.co.uk/blog/10-10-2006/mysql-drop-all-tables
  mysqldump -u $MYSQL_USER -p$MYSQL_PASS --add-drop-table --no-data $DRUPAL_DB_NAME | grep ^DROP | mysql -u $MYSQL_USER -p$MYSQL_PASS $DRUPAL_DB_NAME
}

createdb() {
  echo "check whether the database exists"
  db_exists=`mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$DRUPAL_DB_NAME'" | wc -c`
  if [ $db_exists = 0 ]; then
    echo "** create Drupal database $DRUPAL_DB_NAME..."
    mysqladmin -u $MYSQL_USER -p$MYSQL_PASS create $DRUPAL_DB_NAME
  else
    echo "** Drupal database $DRUPAL_DB_NAME exists, drop tables..."
    echo -n 'Are you sure, that you want to drop tables? (y/n) '
    read do_drop
    if [ $do_drop = y ]; then
      droptables
    else
      echo 'The script does not drop tables'
    fi
  fi

  create_user=0
  echo "check whether the database user exists and has privilege"
  user_exists=`mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT user FROM mysql.user WHERE user = '$DRUPAL_DB_USER'" | wc -c`
  if [ $user_exists = 0 ]; then
    create_user=1
  else
    user_has_privilage=`mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT User FROM mysql.db WHERE db = '$DRUPAL_DB_NAME' AND user = '$DRUPAL_DB_USER'" | wc -c`
    if [ $user_has_privilage = 0 ]; then
      create_user=1
    fi
  fi

  if [ $create_user = 1 ]; then
    echo "** create MySQL user $DRUPAL_DB_USER..."
    mysql -u $MYSQL_USER -p$MYSQL_PASS -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES ON $DRUPAL_DB_NAME.* TO '$DRUPAL_DB_USER'@'localhost' IDENTIFIED BY '$DRUPAL_DB_PASS';FLUSH PRIVILEGES;" $DRUPAL_DB_NAME
  else
    echo 'The user already exists and has appropriate privilege'
  fi
}

# download and extract Drupal and setup filesystem
drupal_download() {
  if [ ! -e $DOWNLOAD_DIR ]; then
    mkdir -p $DOWNLOAD_DIR
  fi
  cd $DOWNLOAD_DIR

  # get actual Drupal
  if [ ! -e drupal-$DRUPAL_VERSION.tar.gz ]; then
    echo "** downloading Drupal... $DRUPAL_VERSION"
    wget http://ftp.drupal.org/files/projects/drupal-$DRUPAL_VERSION.tar.gz
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME ]; then
    # uncompress
    echo '** extracting Drupal...'
    tar -zxf drupal-$DRUPAL_VERSION.tar.gz
    # move to the web directory
    mv drupal-$DRUPAL_VERSION $WWW_DIR/$DRUPAL_NAME
  fi
  cd $WWW_DIR/$DRUPAL_NAME

  echo '** prepare Drupal setting files...'
  if [ ! -e sites/default/settings.php ]; then
    cp sites/default/default.settings.php sites/default/settings.php
  fi
  chmod a+w sites/default/
  chmod a+w sites/default/settings.php
  cd sites/all

  if [ ! -d modules ]; then
    mkdir modules
  fi

  if [ ! -d themes ]; then
    mkdir themes
  fi

  if [ ! -d libraries ]; then
    mkdir libraries
  fi

  cd $CURRENT_DIR
}

# download XC profile
drupal_profile() {
  # setup profile
  echo "** setup profile..."
  cd $WWW_DIR/$DRUPAL_NAME/profiles/
  if [ ! -d xc_installation ]; then
    git clone --branch master http://git.drupal.org/project/xc_installation.git
  fi
  cd $CURRENT_DIR
}

# download necessary modules to $DOWNLOAD_DIR
drupal_modules() {
  # prepare module and theme directories
  echo '** prepare module and theme directories...'
  if [ ! -e $DOWNLOAD_DIR ]; then
    mkdir $DOWNLOAD_DIR
  fi
  cd $DOWNLOAD_DIR

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/addthis ]; then
    echo "** downloading addthis module..."
    VERSION=6.x-3.0-beta1
    if [ ! -e addthis-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/addthis-$VERSION.tar.gz
    fi
    tar -zxf addthis-$VERSION.tar.gz
    mv addthis $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/admin_menu ]; then
    echo "** downloading admin_menu module..."
    VERSION=6.x-1.8
    if [ ! -e admin_menu-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/admin_menu-$VERSION.tar.gz
    fi
    tar -zxf admin_menu-$VERSION.tar.gz
    mv admin_menu $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/fieldset_helper ]; then
    echo '** downloading fieldset_helper module...'
    VERSION=6.x-1.0
    if [ ! -e fieldset_helper-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/fieldset_helper-$VERSION.tar.gz
    fi
    tar -zxf fieldset_helper-$VERSION.tar.gz
    mv fieldset_helper $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/lightbox2 ]; then
    echo '** downloading lightbox2 module...'
    VERSION=6.x-1.11
    if [ ! -e lightbox2-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/lightbox2-$VERSION.tar.gz
    fi
    tar -zxf lightbox2-$VERSION.tar.gz
    mv lightbox2 $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/print ]; then
    echo '** downloading print module...'
    VERSION=6.x-1.12
    if [ ! -e print-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/print-$VERSION.tar.gz
    fi
    tar -zxf print-$VERSION.tar.gz
    mv print $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  MODULE=jquery_ui_dialog
  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/$MODULE ]; then
    # download jquery ui dialog from Git repository
    echo "** downloading $MODULE module..."
    cd $WWW_DIR/$DRUPAL_NAME/sites/all/modules/
    if [ ! -d jquery_ui_dialog ]; then
      git clone --branch master git://github.com/EugenMayer/jquery_ui_dialog.git
    fi
    cd $CURRENT_DIR
  fi

  MODULE=jquery_ui
  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/$MODULE ]; then
    echo "** downloading $MODULE module..."
    VERSION=6.x-1.5
    if [ ! -e $MODULE-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/$MODULE-$VERSION.tar.gz
    fi
    tar -zxf $MODULE-$VERSION.tar.gz
    mv $MODULE $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  MODULE=jquery_update
  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/$MODULE ]; then
    echo "** downloading $MODULE module..."
    VERSION=6.x-2.0-alpha1
    if [ ! -e $MODULE-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/$MODULE-$VERSION.tar.gz
    fi
    tar -zxf $MODULE-$VERSION.tar.gz
    mv $MODULE $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

  LIB=jquery.ui
  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/libraries/$LIB ]; then
    echo "** downloading $LIB library..."
    VERSION=1.6
    if [ ! -e $LIB-$VERSION.zip ]; then
      wget http://jquery-ui.googlecode.com/files/$LIB-$VERSION.zip
    fi
    unzip $LIB-$VERSION.zip
    mv $LIB-$VERSION $LIB
    mv $LIB $WWW_DIR/$DRUPAL_NAME/sites/all/libraries
  fi

  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/themes/xc_theme ]; then
    echo "** downloading theme xc_theme..."
    VERSION=6.x-1.2
    if [ ! -e xc_theme-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/xc_theme-$VERSION.tar.gz
    fi
    tar -zxf xc_theme-$VERSION.tar.gz
    mv xc_theme $WWW_DIR/$DRUPAL_NAME/sites/all/themes
  fi

  MODULE=xc
  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/$MODULE ]; then
    echo "** downloading $MODULE module..."
    VERSION=6.x-1.2
    if [ ! -e $MODULE-$VERSION.tar.gz ]; then
      wget http://ftp.drupal.org/files/projects/$MODULE-$VERSION.tar.gz
    fi
    tar -zxf $MODULE-$VERSION.tar.gz
    mv $MODULE $WWW_DIR/$DRUPAL_NAME/sites/all/modules
  fi

#  download XC from Git
#  if [ ! -d $WWW_DIR/$DRUPAL_NAME/sites/all/modules/xc ]; then
#    cd $WWW_DIR/$DRUPAL_NAME/sites/all/modules
#    echo "** downloading xc module..."
#    git clone --branch 6.x-1.x http://git.drupal.org/project/xc.git
#  fi

  # apply fieldset_helper patch
  cd $WWW_DIR/$DRUPAL_NAME/sites/all/modules/fieldset_helper
  pwd
  cp ../xc/hook_fieldset_helper_path_alter-823318-4.patch .
  cp fieldset_helper.module fieldset_helper.module.bak
  patch -p1 fieldset_helper.module hook_fieldset_helper_path_alter-823318-4.patch

  cd $CURRENT_DIR
}

# download, extract and prepare Solr
solr_download() {
  if [ ! -e $DOWNLOAD_DIR ]; then
    mkdir $DOWNLOAD_DIR
  fi
  cd $DOWNLOAD_DIR

  echo '** checking Apache Solr...'
  if [ ! -e apache-solr-$SOLR_VERSION.tgz ]; then
    wget http://www.apache.org/dist/lucene/solr/$SOLR_VERSION/apache-solr-$SOLR_VERSION.tgz
  fi
  solr_instance=$SOLR_PARENT_DIR/apache-solr-$SOLR_VERSION/example

  echo '** extracting Solr...'
  if [ ! -e apache-solr-$SOLR_VERSION ]; then
    tar -zxf apache-solr-$SOLR_VERSION.tgz
    # SOLR_PARENT_DIR
    if [ ! -e $SOLR_PARENT_DIR ]; then
      mkdir $SOLR_PARENT_DIR
    fi
    cp -r apache-solr-$SOLR_VERSION $SOLR_PARENT_DIR/apache-solr-$SOLR_VERSION

    conf_dir=$solr_instance/solr/conf
    resources=$WWW_DIR/$DRUPAL_NAME/sites/all/modules/xc/xc_solr/resources

    # save original config files
    cp $WWW_DIR/$DRUPAL_NAME/sites/all/modules/xc/xc_solr/resources/solr.* $solr_instance
    if [ ! -e $conf_dir/solrconfig-orig.xml ]; then
      mv $conf_dir/solrconfig.xml $conf_dir/solrconfig-orig.xml
      mv $conf_dir/schema.xml $conf_dir/schema-orig.xml
    fi

    # copy Solr configuration file
    if [ -e $resources/solrconfig-for-$SOLR_VERSION.xml ]; then
      cp $resources/solrconfig-for-$SOLR_VERSION.xml $conf_dir/solrconfig.xml
    else
      cp $resources/solrconfig.xml $conf_dir
    fi

    # copy Solr schema file
    if [ -e $resources/schema-for-$SOLR_VERSION.xml ]; then
      cp $resources/schema-for-$SOLR_VERSION.xml $conf_dir/schema.xml
    else
      cp $resources/schema.xml $conf_dir
    fi

    # copy jar files
    SOLR_DIR=$SOLR_PARENT_DIR/apache-solr-$SOLR_VERSION
    mkdir $solr_instance/solr/lib
    SOLR_LIB=$solr_instance/solr/lib
    case "$SOLR_VERSION" in
      '1.4.0')
        ;;
      '3.1.0')
        cp $SOLR_DIR/dist/apache-solr-analysis-extras-$SOLR_VERSION.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lib/icu4j-4_6.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lucene-libs/lucene-icu-$SOLR_VERSION.jar $SOLR_LIB
        ;;
      '3.2.0')
        cp $SOLR_DIR/dist/apache-solr-analysis-extras-$SOLR_VERSION.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lib/icu4j-4_6.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lucene-libs/lucene-icu-$SOLR_VERSION.jar $SOLR_LIB
        ;;
      '3.3.0')
        cp $SOLR_DIR/dist/apache-solr-analysis-extras-$SOLR_VERSION.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lib/icu4j-4_8.jar $SOLR_LIB
        cp $SOLR_DIR/contrib/analysis-extras/lucene-libs/lucene-icu-$SOLR_VERSION.jar $SOLR_LIB
        ;;
    esac
  fi
  cd $solr_instance
  chmod +x solr.s*
  cd $CURRENT_DIR
}

# start Solr
solr_start() {
  if [ "$SOLR_PARENT_DIR" = "" ]; then
    get_solr_parent_dir
    get_solr_version
  fi
  solr_instance=$SOLR_PARENT_DIR/apache-solr-$SOLR_VERSION/example

  echo '** Starting Solr...'
  cd $solr_instance
  ./solr.sh start
  cd $CURRENT_DIR
}

# stop Solr
solr_stop() {
  if [ "$SOLR_PARENT_DIR" = "" ]; then
    get_solr_parent_dir
    get_solr_version
  fi
  solr_instance=$SOLR_PARENT_DIR/apache-solr-$SOLR_VERSION/example

  echo '** Stoping Solr...'
  cd $solr_instance
  ./solr.sh stop
  cd $CURRENT_DIR
}

welcome() {
  echo 'Welcome to eXtensible Catalog Drupal Toolkit installation'
  echo ''
}

# all things together
all() {
  echo '**********************************'
  echo '** installing XC Drupal Toolkit **'
  echo '**********************************'
  welcome
  read_variables
  createdb
  drupal_download
  drupal_profile
  drupal_modules
  solr_download
  solr_start
  echo '*******************************************'
  echo '** installing XC Drupal Toolkit finished **'
  echo '*******************************************'
}

# profile - use with profile installation
profile() {
  echo '**********************************'
  echo '** installing XC Drupal Toolkit **'
  echo '**********************************'
  welcome
  read_variables
  createdb
  drupal_download
  drupal_profile
  drupal_modules
  solr_download
  solr_start
  echo '*******************************************'
  echo '** installing XC Drupal Toolkit finished **'
  echo '*******************************************'
}

# only drupal
drupal() {
  echo '**********************************'
  echo '** installing XC Drupal Toolkit **'
  echo '**********************************'
  welcome
  read_variables
  createdb
  drupal_download
  drupal_profile
  drupal_modules
  echo '*******************************************'
  echo '** installing XC Drupal Toolkit finished **'
  echo '*******************************************'
}

help() {
  welcome
#  echo "Usage: $0 {all|drupal|createdb|solr_start|solr_stop|solr_spellcheck|help}"
  echo "Usage: $0 {all|drupal|createdb|droptables|solr_start|solr_stop|help}"
  echo "  all - prepare Drupal and Apache Solr files for XC"
  echo "  drupal - prepare Drupal files for XC"
  echo "  createdb - create database for Drupal"
  echo "  droptables - drop all tables from Drupal database"
  echo "  solr_start - start Apache Solr"
  echo "  solr_stop - stop Apache Solr"
  echo "  help - this help info"
#  echo "  solr_spellcheck - create spellcheck index for Apache Solr"
  echo ""
  echo "If you just start, select the 'all' task. Please adjust the configuration section of this script."
}

case "$1" in
  createdb)
    createdb
    ;;
  all)
    all
    ;;
  drupal)
    drupal
    ;;
  solr_start)
    solr_start
    ;;
  solr_stop)
    solr_stop
    ;;
  droptables)
    droptables
    ;;
  help)
    help
    ;;
  *)
    help
esac

exit $?


XC Profile Installation

DRUPAL_NAME=xc-6.x-1.2
DISTRO_VERSION=6.x-1.2
SOLR_VERSION=3.3.0
JQUERY_UI_VERSION=1.6

download() {
  if [ "$HAS_WGET" = "1" ]; then
    wget -q $1
  elif [ "$HAS_CURL" = "1" ]; then
    curl -O $1
  fi
}

download_requirement_check() {
  HAS_WGET=`command -v wget >/dev/null && echo "1" || echo "0"`
  HAS_CURL=`command -v curl >/dev/null && echo "1" || echo "0"`

  if [ "$HAS_WGET" = "0" -a "$HAS_CURL" = "0" ]; then
    echo "Please install either wget or curl"
    echo ""
    echo "Or download these files manually:"
    echo "http://ftp.drupal.org/files/projects/xc_installation-$DISTRO_VERSION-core.tar.gz"
    echo "http://jquery-ui.googlecode.com/files/jquery.ui-1.6.zip"
    echo "http://www.apache.org/dist/lucene/solr/$SOLR_VERSION/apache-solr-$SOLR_VERSION.tgz"
    exit;
  fi
}

requirement_check() {
  HAS_PATCH=`command -v patch >/dev/null && echo "1" || echo "0"`
  HAS_GIT=`command -v git >/dev/null && echo "1" || echo "0"`
  HAS_JAVA=`command -v java >/dev/null && echo "1" || echo "0"`

  if [ "$HAS_PATCH" = "0" -a "$HAS_GIT" = "0" ]; then
    echo "To install the software correctly we have to modify some files in contibuted modules."
    echo "This process requires the 'patch' or 'git' tools. Please install them first."
    exit;
  fi

  if [ "$HAS_JAVA" = "0" ]; then
    echo "To run Solr Java is a must have. Please install it."
    exit;
  fi
}

download_all() {
  if [ ! -e xc_installation-$DISTRO_VERSION-core.tar.gz ]; then
    download_requirement_check
    echo "Downloading distribution"
    download http://ftp.drupal.org/files/projects/xc_installation-$DISTRO_VERSION-core.tar.gz
  fi

  if [ ! -e jquery.ui-$JQUERY_UI_VERSION.zip ]; then
    download_requirement_check
    echo "Downloading jQuery UI"
    download http://jquery-ui.googlecode.com/files/jquery.ui-$JQUERY_UI_VERSION.zip
  fi

  if [ ! -e apache-solr-$SOLR_VERSION.tgz ]; then
    download_requirement_check
    echo "Downloading Apache Solr"
    download http://www.apache.org/dist/lucene/solr/$SOLR_VERSION/apache-solr-$SOLR_VERSION.tgz
  fi
}

rm -rf $DRUPAL_NAME
rm -rf apache-solr-$SOLR_VERSION-xc-6.x-1.2

requirement_check
download_all

CWD=`pwd`
echo "Prepare Drupal"
tar xzf xc_installation-$DISTRO_VERSION-core.tar.gz
mv drupal-6.22 $DRUPAL_NAME

cd $DRUPAL_NAME
if [ ! -e sites/default/settings.php ]; then
  cp sites/default/default.settings.php sites/default/settings.php
fi
chmod a+w sites/default/
chmod a+w sites/default/settings.php

# move modules and theme to sites/all
mv profiles/xc_installation/modules sites/all/modules
mv profiles/xc_installation/themes sites/all/themes

cd sites/all
if [ ! -d libraries ]; then
  mkdir libraries
fi

# patching fieldset_helper
echo "Patching fieldset_helper"
cd modules/fieldset_helper
pwd
cp ../xc/xc_util/patches/hook_fieldset_helper_path_alter-823318-4.patch .
cp fieldset_helper.module fieldset_helper.module.bak
patch -p1 fieldset_helper.module hook_fieldset_helper_path_alter-823318-4.patch

# go home directory
cd $CWD

# patching autocomplete
echo "Patching autocomplete"
cd $DRUPAL_NAME
pwd
cp sites/all/modules/xc/xc_util/patches/xc-autocomplete.patch .
cp misc/autocomplete.js misc/autocomplete.js.bak
patch -p1 misc/autocomplete.js xc-autocomplete.patch
rm xc-autocomplete.patch

# go home directory
cd $CWD

# jquery.ui
unzip -q jquery.ui-$JQUERY_UI_VERSION.zip
mv jquery.ui-$JQUERY_UI_VERSION jquery.ui
mv jquery.ui $DRUPAL_NAME/sites/all/libraries

echo "The preparation was successfull"

echo "The Solr part"
solr_instance=apache-solr-$SOLR_VERSION/example

echo '** extracting Solr...'
tar -zxf apache-solr-$SOLR_VERSION.tgz

conf_dir=$solr_instance/solr/conf
resources=$DRUPAL_NAME/sites/all/modules/xc/xc_solr/resources

# save original config files
cp $resources/solr.* $solr_instance
if [ ! -e $conf_dir/solrconfig-orig.xml ]; then
  mv $conf_dir/solrconfig.xml $conf_dir/solrconfig-orig.xml
  mv $conf_dir/schema.xml $conf_dir/schema-orig.xml
fi

# copy Solr configuration file
if [ -e $resources/solrconfig-for-$SOLR_VERSION.xml ]; then
  cp $resources/solrconfig-for-$SOLR_VERSION.xml $conf_dir/solrconfig.xml
else
  cp $resources/solrconfig.xml $conf_dir
fi

# copy Solr schema file
if [ -e $resources/schema-for-$SOLR_VERSION.xml ]; then
  cp $resources/schema-for-$SOLR_VERSION.xml $conf_dir/schema.xml
else
  cp $resources/schema.xml $conf_dir
fi

# copy jar files
SOLR_DIR=apache-solr-$SOLR_VERSION
SOLR_LIB=$solr_instance/solr/lib
mkdir $SOLR_LIB
cp $SOLR_DIR/dist/apache-solr-analysis-extras-$SOLR_VERSION.jar $SOLR_LIB
cp $SOLR_DIR/contrib/analysis-extras/lib/icu4j-4_8.jar $SOLR_LIB
cp $SOLR_DIR/contrib/analysis-extras/lucene-libs/lucene-icu-$SOLR_VERSION.jar $SOLR_LIB

cd $solr_instance
chmod +x solr.s*
cd $CWD

mv $SOLR_DIR $SOLR_DIR-xc-6.x-1.2

echo -n 'In which directory to put Apache Solr? ('$HOME'/solr): '
read SOLR_PARENT_DIR

if [ "$SOLR_PARENT_DIR" = "" ]; then
  SOLR_PARENT_DIR=$HOME/solr
fi

if [ ! -e $SOLR_PARENT_DIR ]; then
  mkdir $SOLR_PARENT_DIR
fi

if [ -e $SOLR_PARENT_DIR/$SOLR_DIR-xc-6.x-1.2 ]; then
  rm -rf $SOLR_PARENT_DIR/$SOLR_DIR-xc-6.x-1.2
fi

mv $SOLR_DIR-xc-6.x-1.2 $SOLR_PARENT_DIR

echo -n 'What is the Apache HTTP server web directory? (/var/www): '
read WWW_DIR

if [ "$WWW_DIR" = "" ]; then
  WWW_DIR=/var/www
fi

if [ -e $WWW_DIR/$DRUPAL_NAME ]; then
  rm -rf $WWW_DIR/$DRUPAL_NAME
fi

mv $DRUPAL_NAME $WWW_DIR

echo "Start Solr"
cd $SOLR_PARENT_DIR/$SOLR_DIR-xc-6.x-1.2/example
./solr.sh start
cd $CWD

Help improve this page

Page status: Not set

You can: