debian/littlebird-tc-sql.postinst
changeset 11 24417d8949b5
parent 7 c34f5210c656
child 14 1267d8034336
equal deleted inserted replaced
10:7fc329e733c5 11:24417d8949b5
     1 #!/bin/sh
     1 #!/bin/sh
       
     2 echo "$0: $@" >&2
     2 # postinst script for littlebird
     3 # postinst script for littlebird
     3 #
     4 #
     4 # see: dh_installdeb(1)
     5 # see: dh_installdeb(1)
     5 set -e
     6 set -e
     6 . /usr/share/debconf/confmodule
     7 . /usr/share/debconf/confmodule
    15 #          <failed-install-package> <version> `removing'
    16 #          <failed-install-package> <version> `removing'
    16 #          <conflicting-package> <version>
    17 #          <conflicting-package> <version>
    17 # for details, see http://www.debian.org/doc/debian-policy/ or
    18 # for details, see http://www.debian.org/doc/debian-policy/ or
    18 # the debian-policy package
    19 # the debian-policy package
    19 
    20 
       
    21 _mysql() { mysql -h"$host" -u"$adminuser" -p"$adminpass" "$@"; }
       
    22 
    20 
    23 
    21 case "$1" in
    24 case "$1" in
    22     configure)
    25     configure)
    23 	db_get littlebird-tc/db/adminuser && adminuser="$RET" || true
       
    24 	db_get littlebird-tc/db/adminpass && adminpass="$RET" || true
       
    25 	db_get littlebird-tc/db/user && user="$RET" || true
       
    26 	db_get littlebird-tc/db/pass && pass="$RET" || true
       
    27 	db_get littlebird-tc/db/host && host="$RET" || true
       
    28 	db_get littlebird-tc/db/name && name="$RET" || true
       
    29 
    26 
    30 #	cat <<EOF
    27 	# only if we have admin access to the database
    31 #$@
    28 	db_get littlebird-tc/db/have-admin || true
    32 #adminuser/pass: $adminuser/$adminpass
    29 	if test "$RET" = "true"; then
    33 #user/pass: $user/$pass
    30 		db_get littlebird-tc/db/adminuser && adminuser="$RET" || true
    34 #db@host: $name@$host
    31 		db_get littlebird-tc/db/adminpass && adminpass="$RET" || true
    35 #EOF
    32 		db_get littlebird-tc/db/host && host="$RET" || true
    36 	# only init the db if there is no previous version
    33 		db_get littlebird-tc/db/name && name="$RET" || true
    37 	if test -z "$2" && test -n "$adminpass"; then
       
    38 
    34 
    39 	    if test "$host" = "localhost"; then client="localhost"
    35 		# check admin access
    40 	    else client="%"
    36 		_mysql -e "" mysql || {
    41 	    fi
    37 		    echo "Access to mysql database failed!" >&2
       
    38 		    exit 1
       
    39 		}
    42 
    40 
    43 	    mysql -h"$host" -u"$adminuser" -p"$adminpass" <<EOF
    41 		if _mysql -e "" "$name" 2>/dev/null; then
    44 		CREATE DATABASE IF NOT EXISTS $name;
    42 		    db_subst littlebird-tc/db/exists name "$name" || true
    45 		GRANT ALL ON $name.* TO '$user'@'$client' IDENTIFIED BY '$pass';
    43 		    db_input medium littlebird-tc/db/exists || true
    46 		FLUSH PRIVILEGES;
    44 		    db_go || true
       
    45 		else
       
    46 		    # ok, setup the database
       
    47 
       
    48 		    db_get littlebird-tc/db/user && user="$RET" || true
       
    49 		    db_get littlebird-tc/db/pass && pass="$RET" || true
       
    50 		    if test "$host" = "localhost"; then client="localhost"
       
    51 		    else client="%"
       
    52 		    fi
       
    53 
       
    54 		    # create or update the user
       
    55 
       
    56 		    _mysql <<EOF
       
    57 		    CREATE DATABASE $name;
       
    58 		    GRANT ALL ON $name.* TO '$user'@'$client' IDENTIFIED BY '$pass';
       
    59 		    FLUSH PRIVILEGES;
    47 EOF
    60 EOF
    48 	    (	set -e
    61 	    
    49 		cd /usr/share/littlebird/tc-sql
    62 		    /usr/share/littlebird/tc-sql/install_test_iteration_2011-06.sh \
    50 		./install_test_iteration_2011-06.sh \
    63 			--host "$host" --db "$name" \
    51 		    "$host" "$name" \
    64 			--adminuser "$adminuser" --adminpass "$adminpass" \
    52 		    "$adminuser" "$adminpass" \
    65 			--user "$user" --pass "$pass"
    53 		    "$user" "$pass"
    66 		fi
    54 	    )
       
    55 	fi
    67 	fi
    56     ;;
    68     ;;
    57 
    69 
    58     abort-upgrade|abort-remove|abort-deconfigure)
    70     abort-upgrade|abort-remove|abort-deconfigure)
    59     ;;
    71     ;;