From fe03d997bc85c1f5db8c4a0392de5b3d71a20377 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 6 Dec 2002 23:38:37 +0000 Subject: Make and configurable, and actually use them. More consistently handle option defaults. Comment out unused db drop routine. --- localezcreate | 111 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 50 deletions(-) (limited to 'localezcreate') diff --git a/localezcreate b/localezcreate index 414d600..f00db8d 100755 --- a/localezcreate +++ b/localezcreate @@ -3,11 +3,15 @@ # /usr/local/sbin/localezcreate # Copyright 2001-2002 Jonas Smedegaard # -# $Id: localezcreate,v 1.15 2002-12-05 04:53:35 jonas Exp $ +# $Id: localezcreate,v 1.16 2002-12-06 23:38:37 jonas Exp $ # # Create local eZ Publish site # # This script makes use of the Debian package wwwconfig-common if installed +# +# TODO: Ask for and set default language and theme +# TODO: Make a note about installed languages and themes (for smooth upgrades) +# TODO: Make md5 of all files (for smooth upgrades) set -e @@ -19,28 +23,19 @@ bindir="/usr/share/ezpublish/bin" tarballs="lib data tpl www" sqlfile="publish_mysql.sql" sqlfile2="data_mysql.sql" -defaultmaildomain=`cat /etc/mailname 2> /dev/null || hostname -d` -defaultdomain="ez."`hostname -d` defaultuid="www-data" +defaultdomain="ez."`hostname -d` +defaultmaildomain=`cat /etc/mailname 2> /dev/null || echo $defaultdomain` +defaultdbname="ez_2_2_$host" defaultgid="www-data" -dbserver="localhost" -dballow="$dbserver" +defaultdbserver="localhost" +defaultdballow="localhost" template_tarballs="" language_tarballs="en_GB en_GB_org" if [ -e /etc/local/localezcreate.conf ]; then . /etc/local/localezcreate.conf fi -# Input -host="$1" -uid="$2" -fqdn="$3" -maildomain="$4" -dbname="$5" -dbuser="$6" -mailuser="$7" -gid="$8" - if [ $# \< 1 -o $# \> 8 ]; then echo "Usage: `basename $0` host [ uid [ fqdn [ maildomain [ dbname [ dbuser" echo " [ mailuser [ gid ]]]]]]" @@ -50,19 +45,47 @@ if [ $# \< 1 -o $# \> 8 ]; then echo " uid: System user id ($defaultuid)" echo " fqdn: Complete domain name (.$defaultdomain)" echo " maildomain: Domain part of mail address ($defaultmaildomain)" - echo " dbname: MySQL database name (ez_2_2_)" + echo " dbname: MySQL database name ($defaultdbname)" echo " dbuser: MySQL database user ()" echo " mailuser: User part of mail address ()" - echo " gid: System group id ($defaultgid" + echo " gid: System group id ($defaultgid)" + echo " dbserver: IP or host of MySQL server ($defaultdbserver)" + echo " dballow: IP or host of eZ server ($defaultdballow)" echo - echo " MySQL password for can be stored in $HOME/.my.cnf of ." + echo " MySQL password for can be stored in \$HOME/.my.cnf of ." echo echo " Example: `basename $0` bilbo news news.forum.com" exit 1 fi -# Attempt to figure out dbadmin and dbadmpass, else ask for them +uid=${2:-$defaultuid} +fqdn=${3:-$host.$defaultdomain} +maildomain=${4:-$defaultmaildomain} +dbname=${5:-$defaultdbname} +dbuser=${6:-$uid} +mailuser=${7:-$uid} +gid=${8:-$defaultgid} +dbserver=${9:-$defaultdbserver} +dballow=${10:-$defaultdballow} + +home=`getent passwd $uid | awk -F: '{print $6}';` +basedir="$home/webphpsites/$fqdn" +adminhost="admin.$fqdn" +adminbasedir="$basedir/admin" +webcfg="/etc/apache/vhosts.d/$fqdn" + +# Attempt to figure out dbpass, dbadmin and dbadmpass, else ask for them +if [ -z "$dbpass" ]; then + if [ -f $home/.my.cnf ]; then + dbpass=$(grep password $home/.my.cnf | awk -F= '{print $2}' | head -1 | sed 's/^ //g') + fi + if [ -z "$dbpass" ]; then + echo -n "Enter MySQL password for $dbuser: " + read -s dbpass + echo + fi +fi if [ -e /usr/share/wwwconfig-common/mysql-localadmpass.get -a "$dbserver" = "localhost" ] ; then status="" . /usr/share/wwwconfig-common/mysql-localadmpass.get @@ -79,36 +102,19 @@ if [ -z "$dbadmpass" ]; then echo fi -uid=${uid:-$defaultuid} -gid=${gid:-$defaultgid} -fqdn=${fqdn:-$host.$defaultdomain} -dbname=${dbname:-ez_2_2_$host} -dbuser=${dbuser:-$uid} -mailuser=${mailuser:-$uid} -maildomain=${maildomain:-$defaultmaildomain} -home=`getent passwd $uid | awk -F: '{print $6}';` -if [ -z "$dbpass" ]; then - if [ -f $home/.my.cnf ]; then - dbpass=$(grep password $home/.my.cnf | awk -F= '{print $2}' | head -1 | sed 's/^ //g') - fi - if [ -z "$dbpass" ]; then - echo -n "Enter MySQL password for $uid: " - read -s dbpass - echo - fi -fi -basedir="$home/webphpsites/$fqdn" -adminhost="admin.$fqdn" -adminbasedir="$basedir/admin" -webcfg="/etc/apache/vhosts.d/$fqdn" - #TODO: Make sure $basedir, $dbname, $dbuser and $webcfg doesn't exist -if [ "$(basename $0)" = "${pkg}betarecreate" ]; then - mysqladmin -u$dbadmin -p$dbadmpass drop $dbname - rm -rf $basedir +# Do not force TCP/IP access when connecting locally +optdbserver="" +if [ "$dbserver" != "localhost" ]; then + optdbserver="-p$dbserver" fi +#if [ "$(basename $0)" = "${pkg}betarecreate" ]; then +# mysqladmin -u$dbadmin -p$dbadmpass $optdbserver drop $dbname +# rm -rf $basedir +#fi + echo "Creating database $dbname" if [ -e /usr/share/wwwconfig-common/mysql-createdb.sh ] ; then status="" @@ -118,7 +124,7 @@ if [ -e /usr/share/wwwconfig-common/mysql-createdb.sh ] ; then exit 1 fi else - mysqladmin -u$dbadmin -p$dbadmpass create $dbname + mysqladmin -u$dbadmin -p$dbadmpass $optdbserver create $dbname fi if [ -e /usr/share/wwwconfig-common/mysql-createuser.sh ] ; then status="" @@ -127,9 +133,13 @@ if [ -e /usr/share/wwwconfig-common/mysql-createuser.sh ] ; then echo "$error" exit 1 fi - echo "GRANT INDEX ON $dbname.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass + for h in `echo "localhost $dballow" | sort -u`; do + echo "GRANT INDEX ON $dbname.* TO '$dbuser'@$h IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass $optdbserver + done else - echo "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON $dbname.* TO '$dbuser'@localhost IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass + for h in `echo "localhost $dballow" | sort -u`; do + echo "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON $dbname.* TO '$dbuser'@$h IDENTIFIED BY '$dbpass';" | mysql -u$dbadmin -p$dbadmpass $optdbserver + done fi echo "Inject initial data into database" @@ -141,7 +151,7 @@ if [ -e /usr/share/wwwconfig-common/mysql-exec.sh ] ; then exit 1 fi else - cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $dbname + cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $optdbserver $dbname fi echo -n "Unpacking tarballs:" @@ -175,7 +185,7 @@ if [ -e /usr/share/wwwconfig-common/mysql-exec.sh ] ; then exit 1 fi else - cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $dbname + cat $sqldir/$sqlfile | mysql -u$dbadmin -p$dbadmpass $optdbserver $dbname fi echo "Configuring website" @@ -197,6 +207,7 @@ SiteDescription=a web application suite SiteKeywords=Content Management System, CMS, e-commerce Database=$dbname User=$dbuser +Server=$dbserver Password=$dbpass [eZUserMain] -- cgit v1.2.3