diff --git a/debian/scripts/koha-create b/debian/scripts/koha-create
index f360cf2c30..33edb94c25 100755
--- a/debian/scripts/koha-create
+++ b/debian/scripts/koha-create
@@ -53,6 +53,11 @@ getmysqlhost() {
/etc/mysql/koha-common.cnf
}
+getinstancemysqlpassword() {
+ sed -n '//s:.*>\(.*\).*:\1:p' \
+ "/etc/koha/sites/$1/koha-conf.xml"
+}
+
# Set defaults and read config file, if it exists.
DOMAIN=""
@@ -67,8 +72,16 @@ fi
# Parse command line.
-[ "$#" = 1 ] || die "Usage: $0 instancename"
-name="$1"
+[ "$#" = 2 ] ||
+ die "Usage: $0 [--create-db|--request-db|--populate-db] instancename"
+case "$1" in
+ --create-db) op=create ;;
+ --request-db) op=request ;;
+ --populate-db) op=populate ;;
+ *) die "Usage: $0 [--create-db|--request-db|--populate-db] instancename" ;;
+esac
+
+name="$2"
domain="$name$DOMAIN"
if [ "$INTRAPORT" = 80 ] || [ "$INTRAPORT" = "" ]
then
@@ -78,97 +91,139 @@ else
fi
-# Create new user and group.
-username="$name-koha"
-if getent passwd "$username" > /dev/null
-then
- die "User $username already exists."
-fi
-if getent group "$username" > /dev/null
-then
- die "Group $username already exists."
-fi
-adduser --no-create-home --disabled-login --gecos "Koha instance $username" \
- --quiet "$username"
-
-
-# Create the site-specific directories.
-koha-create-dirs "$name"
-
-
-# Generate Zebra database password.
-zebrapwd="$(pwgen -1)"
-
-
-# Set up MySQL database for this instance.
mysqldb="koha_$name"
mysqlhost="$(getmysqlhost)"
mysqluser="koha_$name"
-mysqlpwd="$(pwgen -1)"
-mysql --defaults-extra-file=/etc/mysql/koha-common.cnf < /dev/null
+ then
+ die "User $username already exists."
+ fi
+ if getent group "$username" > /dev/null
+ then
+ die "Group $username already exists."
+ fi
+ adduser --no-create-home --disabled-login \
+ --gecos "Koha instance $username" \
+ --quiet "$username"
+
+ # Create the site-specific directories.
+ koha-create-dirs "$name"
+
+ # Generate Zebra database password.
+ zebrapwd="$(pwgen -1)"
+
+ # Set up MySQL database for this instance.
+ if [ "$op" = create ]
+ then
+ mysql --defaults-extra-file=/etc/mysql/koha-common.cnf < "$name-db-request.txt" << eof
+Please create a database and user on $mysqlhost as follows:
+
+database name: $mysqldb
+database user: $mysqluser
+ password: $mysqlpwd
+
+Thank you.
+eof
+
+ echo "See $name-db-request.txt for database creation request."
+ echo "Please forward it to the right person, and then run"
+ echo "$0 --populate-db $name"
+ echo "Thanks."
+ fi
+fi
+
+
+if [ "$op" = create ] || [ "$op" = populate ]
then
- # Populate the database with default content.
- zcat "$DEFAULTSQL" |
- sed "s/__KOHASITE__/$name/g" |
- mysql --defaults-extra-file=/etc/mysql/koha-common.cnf
+ # Use the default database content if that exists.
+ if [ -e "$DEFAULTSQL" ]
+ then
+ # Populate the database with default content.
+ zcat "$DEFAULTSQL" |
+ sed "s/__KOHASITE__/$name/g" |
+ mysql --host="$mysqlhost" --user="$mysqluser" --password="$mysqlpwd"
- # Change the default user's password.
- staffpass="$(pwgen -1)"
- staffdigest=$(echo -n "$staffpass" |
- perl -e '
- use Digest::MD5 qw(md5_base64);
- while (<>) { print md5_base64($_), "\n"; }')
- mysql --defaults-extra-file=/etc/mysql/koha-common.cnf <) { print md5_base64($_), "\n"; }')
+ mysql --host="$mysqlhost" --user="$mysqluser" \
+--password="$mysqlpwd" <