diff -r 7fc329e733c5 -r 24417d8949b5 debian/littlebird-tc-sql.postinst --- a/debian/littlebird-tc-sql.postinst Wed Aug 31 17:20:19 2011 +0200 +++ b/debian/littlebird-tc-sql.postinst Thu Sep 01 12:23:59 2011 +0200 @@ -1,4 +1,5 @@ #!/bin/sh +echo "$0: $@" >&2 # postinst script for littlebird # # see: dh_installdeb(1) @@ -17,41 +18,52 @@ # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package +_mysql() { mysql -h"$host" -u"$adminuser" -p"$adminpass" "$@"; } + case "$1" in configure) - db_get littlebird-tc/db/adminuser && adminuser="$RET" || true - db_get littlebird-tc/db/adminpass && adminpass="$RET" || true - db_get littlebird-tc/db/user && user="$RET" || true - db_get littlebird-tc/db/pass && pass="$RET" || true - db_get littlebird-tc/db/host && host="$RET" || true - db_get littlebird-tc/db/name && name="$RET" || true -# cat <&2 + exit 1 + } - if test "$host" = "localhost"; then client="localhost" - else client="%" - fi + if _mysql -e "" "$name" 2>/dev/null; then + db_subst littlebird-tc/db/exists name "$name" || true + db_input medium littlebird-tc/db/exists || true + db_go || true + else + # ok, setup the database + + db_get littlebird-tc/db/user && user="$RET" || true + db_get littlebird-tc/db/pass && pass="$RET" || true + if test "$host" = "localhost"; then client="localhost" + else client="%" + fi - mysql -h"$host" -u"$adminuser" -p"$adminpass" <