diff -r 000000000000 -r 8e044e762a6c stage/autorun.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stage/autorun.sh Tue Jun 23 09:18:34 2009 -0400 @@ -0,0 +1,125 @@ +#!/bin/bash + +## FUNCTIONS + +check_bitnami_dir() +{ + test -d "$1" || return 1 + test -f "$1/ctlscript.sh" || return 1 + test -f "$1/properties.ini" || return 1 + + mysqladmin=$bitnami/mysql/bin/mysqladmin + test -x "$mysqladmin" || return 1 + mysql=$bitnami/mysql/bin/mysql + test -x "$mysql" || return 1 + + return 0 +} + +## SCRIPT + +cd `dirname $0` + +echo "Welcome to the Enano CMS BitNami module installer." +autobitnami="" +if test -n "$HOME"; then + autobitnami=$(echo $HOME/lampstack-*) + if test ! -d "$autobitnami"; then + autobitnami="" + fi +fi +while true; do + if test -n "$autobitnami"; then + read -p "Path to BitNami directory [$autobitnami]: " bitnami + test -z "$bitnami" && bitnami="$autobitnami" + else + read -p "Path to BitNami directory: " bitnami + fi + check_bitnami_dir $bitnami && break + echo "This does not seem to be the home of a BitNami LAMPStack installation." +done + +if [ -d $bitnami/apps/enanocms ]; then + echo "Enano is already installed as a module on this LAMPStack." + exit 1 +fi + +mysql_port=$(cat $bitnami/properties.ini | grep mysql_port | sed -re 's/^mysql_port=//g') + +while true; do + read -s -p "MySQL root password: " mysqlpass + echo "" + out=`$mysqladmin -u root --password="$mysqlpass" ping 2>&1` + test "$out" = "mysqld is alive" && break + echo $out +done + +echo "Creating database." + +bitnami_db="bn_enanocms" +bitnami_user="bn_enanocms" +bitnami_pass=`dd if=/dev/urandom bs=256 count=1 2>/dev/null | tr -cd '\41-\46\50-\176' | cut -c 1-12` + +query='CREATE DATABASE IF NOT EXISTS `'$bitnami_db'`; GRANT ALL PRIVILEGES ON '$bitnami_db'.* TO '"$bitnami_user"'@localhost IDENTIFIED BY '"'$bitnami_pass'"'; FLUSH PRIVILEGES;' +echo $query | $mysql -u root --password="$mysqlpass" || exit 1 + +echo "Installing files." +mkdir -p $bitnami/apps/enanocms/{conf,licenses} || exit 1 +cp -r ./enano-* $bitnami/apps/enanocms/htdocs || exit 1 +cp ./COPYING $bitnami/apps/enanocms/licenses/ || exit 1 +cat < $bitnami/apps/enanocms/conf/enanocms.conf +Alias /enanocms "$bitnami/apps/enanocms/htdocs" + + + Options -Indexes MultiViews FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + +EOF + +echo "Patching Apache configuration." +if test x$(cat $bitnami/apache2/conf/httpd.conf | grep '^Include' | grep enanocms | wc -l) = x0; then + echo -ne "\nInclude "'"'"$bitnami/apps/enanocms/conf/enanocms?conf"'"'"\n" >> $bitnami/apache2/conf/httpd.conf +fi + +echo "Adding Enano to BitNami's applications.html." +if test x$(cat $bitnami/apache2/htdocs/applications.html | fgrep 'START BitNami Enano CMS Module enanocms' | wc -l) = x0; then + cp enanocms-module.png $bitnami/apache2/htdocs/img/ + line=$(cat $bitnami/apache2/htdocs/applications.html | fgrep -n '' | cut -d ':' -f 1) + head -n $(($line - 1)) $bitnami/apache2/htdocs/applications.html > ./applications-temp.html + cat application.html >> ./applications-temp.html + tail -n +$line $bitnami/apache2/htdocs/applications.html >> ./applications-temp.html + mv ./applications-temp.html $bitnami/apache2/htdocs/applications.html +fi + +echo "Starting Enano installer." +while true; do + if $bitnami/php/bin/php $bitnami/apps/enanocms/htdocs/install/install-cli.php -b mysql -h 127.0.0.1 -o $mysql_port -u "$bitnami_user" -p "$bitnami_pass" -d $bitnami_db -i /enanocms -r rewrite + then + break + else + read -n 1 -p "Try installation again? [y/N] " RETRY + if test "$RETRY" != "y"; then + cat <