summaryrefslogtreecommitdiff
path: root/localezcreate
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2002-12-06 23:38:37 +0000
committerJonas Smedegaard <dr@jones.dk>2002-12-06 23:38:37 +0000
commitfe03d997bc85c1f5db8c4a0392de5b3d71a20377 (patch)
tree0cf9302ef9f881738da65c8804662321eaf05500 /localezcreate
parent750c0db5f1371db09b81c078c4769b20f1cc9c17 (diff)
Make <dbserver> and <dballow> configurable, and actually use them.
More consistently handle option defaults. Comment out unused db drop routine.
Diffstat (limited to 'localezcreate')
-rwxr-xr-xlocalezcreate111
1 files changed, 61 insertions, 50 deletions
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 <dr@jones.dk>
#
-# $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 (<host>.$defaultdomain)"
echo " maildomain: Domain part of mail address ($defaultmaildomain)"
- echo " dbname: MySQL database name (ez_2_2_<host>)"
+ echo " dbname: MySQL database name ($defaultdbname)"
echo " dbuser: MySQL database user (<uid>)"
echo " mailuser: User part of mail address (<dbuser>)"
- 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 <dbuser> can be stored in $HOME/.my.cnf of <uid>."
+ echo " MySQL password for <dbuser> can be stored in \$HOME/.my.cnf of <uid>."
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]