summaryrefslogtreecommitdiff
path: root/localezcreate
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2002-12-08 18:52:43 +0000
committerJonas Smedegaard <dr@jones.dk>2002-12-08 18:52:43 +0000
commitc569a57540837ee4c4e2f625f34f69551cbefd79 (patch)
tree931a21e157bd967356d90aa669afc988ee831e4b /localezcreate
parent2794de42eaec364d8d3290c09f0ce41ec6f8991e (diff)
Tweaks to verbose output.
Fix errors parsing boolean options. Make non-password input non-silent. Drop database silently when force is set and ask is not.
Diffstat (limited to 'localezcreate')
-rwxr-xr-xlocalezcreate41
1 files changed, 24 insertions, 17 deletions
diff --git a/localezcreate b/localezcreate
index 0422d78..632070b 100755
--- a/localezcreate
+++ b/localezcreate
@@ -3,7 +3,7 @@
# /usr/local/sbin/localezcreate
# Copyright 2001-2002 Jonas Smedegaard <dr@jones.dk>
#
-# $Id: localezcreate,v 1.21 2002-12-08 17:50:27 jonas Exp $
+# $Id: localezcreate,v 1.22 2002-12-08 18:52:43 jonas Exp $
#
# Create local eZ Publish site
#
@@ -14,6 +14,7 @@
# TODO: Make md5 of all files (for smooth upgrades)
# TODO: Make script (mostly) work as noon-root
# TODO: Include all mail addresses in site.ini.override
+# TODO: Add a --dry-run or --test option showing what would be done (how options are set, and a descriptive text about how they are used)
set -e
@@ -103,7 +104,7 @@ function usage() {
function setparams () { # TODO: Handle default argument '[[ASK]]', and fail loudly on empty defaults
for param in $@; do
eval "$param=`eval \"echo \"\\\"\$\{$param:-\\\$default${param}\}\\\"\"\"`"
- [ $verbose ] && echo "--> $param="`eval echo \$\{$param\}`
+# [ $verbose ] && echo "--> $param="`eval echo \$\{$param\}`
done
}
@@ -119,10 +120,10 @@ while true ; do
-U|--dbuser) dbuser="$2"; shift 2;;
-D|--dbserver) dbserver="$2"; shift 2;;
-Z|--dballow) dballow="$2"; shift 2;;
- -i|--info) case "$2" in ""|on) info="on";; *) info="off";; shift 2;;
- -v|--verbose) case "$2" in ""|on) verbose="on";; *) verbose="off";; shift 2;;
- -q|--query) case "$2" in ""|on) query="on";; *) query="off";; shift 2;;
- -f|--force) case "$2" in ""|on) force="on";; *) force="off";; shift 2;;
+ -i|--info) case "$2" in ""|on) info="on";; *) info="off";; esac; shift 2;;
+ -v|--verbose) case "$2" in ""|on) verbose="on";; *) verbose="off";; esac; shift 2;;
+ -q|--query) case "$2" in ""|on) query="on";; *) query="off";; esac; shift 2;;
+ -f|--force) case "$2" in ""|on) force="on";; *) force="off";; esac; shift 2;;
--) shift; break;;
*) echo "Internal error!" ; exit 1 ;;
esac
@@ -134,12 +135,12 @@ optdbserver="-p$dbserver"
if [ "$dbserver" = "localhost" ]; then
optdbserver="" # Do not force TCP/IP access when connecting locally
fi
-for boolean in  $optsboolean; do
- setparams $boolean
- case "$boolean" in
+setparams $optsboolean
+for boolean in $optsboolean; do
+ case `eval echo \$\{$boolean\}` in
on) eval $boolean="1";;
off) eval $boolean="";;
- *) echo "ERROR: $boolean must be either \"on\" or \"off\"!"; exit 1;;
+ *) echo "ERROR: Parameter of boolean option \"$boolean\" must be \"on\" or \"off\"!"; exit 1;;
esac
done
@@ -169,7 +170,7 @@ fi
if [ -z "$dbadmin" ]; then
if [ $query ]; then
echo -n "Enter database administrator user (usually root): "
- read -s dbadmin
+ read dbadmin
echo
else
echo "ERROR: Database administrator user not resolved!"
@@ -199,16 +200,16 @@ setparams $opts3
[ $verbose ] && echo "Check for existing installation"
error=""
if [ -d $basedir ]; then
- error="Target directory already exists."
+ error="Target directory"`[ $verbose ] && echo " $basedir"`" already exists."
elif [ -f $webcfg ]; then
- error="Apache config already exists."
+ error="Apache config"`[ $verbose ] && echo " $webcfg"`" already exists."
fi
# TODO: Check for existing MySQL database
if [ -n "$error" ]; then
if [ $query ]; then
echo "WARNING: $error"
echo -n "Overwrite existing installation (y/N)?: "
- read -s ack
+ read ack
echo
case $ack in
y|Y) force="1";;
@@ -216,7 +217,11 @@ if [ -n "$error" ]; then
esac
fi
if [ $force ]; then
- mysqladmin -u$dbadmin -p$dbadmpass $optdbserver drop $dbname
+ if [ $query ]; then
+ mysqladmin -u$dbadmin -p$dbadmpass $optdbserver drop $dbname
+ else
+ mysqladmin -u$dbadmin -p$dbadmpass $optdbserver -f drop $dbname
+ fi
rm -rf $basedir
else
echo "ERROR: $error!"
@@ -224,7 +229,7 @@ if [ -n "$error" ]; then
fi
fi
-[ $verbose ] && echo "Create database $dbname"
+[ $verbose ] && echo "Create database $dbname"`[ "$dbserver" != "localhost" ] && echo " on $dbserver"`
if [ -e /usr/share/wwwconfig-common/mysql-createdb.sh ] ; then
status=""
. /usr/share/wwwconfig-common/mysql-createdb.sh
@@ -263,6 +268,7 @@ for chunk in $sqlchunks; do
if [ -f $dir/$sqlfile ]; then
found="1"
sqldir=$dir
+ [ $verbose ] && echo -n "($dir) "
break
fi
done
@@ -297,6 +303,7 @@ for area in source language template; do
if [ -f $dir/$tarball.tar.gz ]; then
found="1"
tarballdir=$dir
+ [ $verbose ] && echo -n "($dir) "
break
fi
done
@@ -308,8 +315,8 @@ for area in source language template; do
exit 1
fi
done
+ [ $verbose ] && echo
done
-[ $verbose ] && echo
[ $verbose ] && echo "Configuring website"
(cd $basedir && $bindir/modfix.sh >/dev/null) || exit 1 # TODO: Check if these are in sync and disable one of them