From c569a57540837ee4c4e2f625f34f69551cbefd79 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 8 Dec 2002 18:52:43 +0000 Subject: 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. --- localezcreate | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'localezcreate') 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 # -# $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 -- cgit v1.2.3