davical/davical-setup.sh

Wed, 05 Oct 2011 22:10:11 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 05 Oct 2011 22:10:11 +0200
changeset 388
d174a379fbfd
parent 295
adc4bc1f8985
child 396
610cba0674b9
permissions
-rw-r--r--

Match modules list in both build and install blocks.

michael@290 1 #!/bin/sh
michael@290 2 ##
michael@290 3 ## davical-setup
michael@290 4 ##
michael@290 5
michael@290 6 # command line argument sanity check
michael@290 7 prg="$0"
michael@290 8 if [ $# -eq 0 ]; then
michael@290 9 echo "$prg:ERROR: invalid command line" 1>&2
michael@290 10 echo "$prg:USAGE: $prg install [<admin-password>]" 1>&2
michael@290 11 echo "$prg:USAGE: $prg uninstall" 1>&2
michael@290 12 echo "$prg:USAGE: $prg edit" 1>&2
michael@290 13 exit 1
michael@290 14 fi
michael@290 15
michael@290 16 # database configuration
michael@290 17 db_dir="@l_prefix@/var/davical/db"
michael@290 18 db_name="davical"
michael@290 19 db_user="davical"
michael@290 20 db_pass="davical"
michael@290 21 db_sname=`grep "^superuser_database" @l_prefix@/var/postgresql/db/pg_superuser.conf |\
michael@290 22 sed -e 's;^ *superuser_database="\(.*\)".*;\1;'`
michael@290 23 db_suser=`grep "^superuser_username" @l_prefix@/var/postgresql/db/pg_superuser.conf |\
michael@290 24 sed -e 's;^ *superuser_username="\(.*\)".*;\1;'`
michael@290 25 db_spass=`grep "^superuser_password" @l_prefix@/var/postgresql/db/pg_superuser.conf |\
michael@290 26 sed -e 's;^ *superuser_password="\(.*\)".*;\1;'`
michael@290 27
michael@290 28 # dispatch operation
michael@290 29 cmd="${1:-"install"}"
michael@290 30 shift
michael@290 31 case "$cmd" in
michael@290 32 install )
michael@290 33 # determine admin password
michael@290 34 admin_password="$1"
michael@290 35 if [ ".$admin_password" = . ]; then
michael@290 36 admin_password="`@l_prefix@/bin/apg -Mncl -a1 -m12 -n1`"
michael@290 37 echo "ATTENTION: using generated \"admin\" password: \"$admin_password\"" 1>&2
michael@290 38 fi
michael@290 39
michael@290 40 # create database
michael@290 41 ( echo "CREATE ROLE $db_user LOGIN ENCRYPTED PASSWORD '$db_pass' NOCREATEDB NOCREATEUSER;"
michael@290 42 echo "CREATE TABLESPACE $db_name OWNER $db_user LOCATION '$db_dir';"
michael@298 43 echo "CREATE DATABASE $db_name OWNER $db_user TABLESPACE $db_name ENCODING 'SQL_ASCII';"
michael@290 44 ) | PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d "$db_sname" -f-
michael@290 45 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" \
michael@290 46 -c "CREATE LANGUAGE plpgsql;"
michael@290 47
michael@290 48 # create schema 1/2 (from original "create_database" script)
michael@290 49 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 50 -f "@l_prefix@/lib/davical/awl/dba/awl-tables.sql" 2>&1 | grep -v NOTICE
michael@290 51 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 52 -f "@l_prefix@/lib/davical/awl/dba/schema-management.sql" 2>&1 | grep -v NOTICE
michael@290 53 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 54 -f "@l_prefix@/lib/davical/davical/dba/davical.sql" 2>&1 | grep -v NOTICE
michael@290 55 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 56 -f "@l_prefix@/lib/davical/davical/dba/base-data.sql" 2>&1 | grep -v NOTICE
michael@290 57
michael@290 58 # create schema 2/2 (from original "update-davical-database" script)
michael@290 59 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 60 -f "@l_prefix@/lib/davical/davical/dba/supported_locales.sql" 2>&1 | grep -v NOTICE
michael@290 61 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 62 -f "@l_prefix@/lib/davical/davical/dba/caldav_functions.sql" 2>&1 | egrep -v '(NOTICE|ERROR)'
michael@290 63 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" -A -t \
michael@290 64 -f "@l_prefix@/lib/davical/davical/dba/rrule_functions.sql" 2>&1 | egrep -v '(NOTICE|ERROR)'
michael@290 65 PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d "$db_name" -A -t \
michael@295 66 -f "/opmi/lib/davical/davical/dba/views/dav_principal.sql"
michael@295 67 PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d "$db_name" -A -t \
michael@290 68 -f "@l_prefix@/lib/davical/davical/dba/appuser_permissions.txt" 2>&1 | grep -v NOTICE
michael@290 69
michael@290 70 # set admin password
michael@290 71 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" \
michael@290 72 -c "UPDATE usr SET password = '**$admin_password' WHERE user_no = 1;"
michael@290 73 ;;
michael@290 74
michael@290 75 uninstall )
michael@290 76 PGPASSWORD="$db_pass" @l_prefix@/bin/psql -q -U "$db_user" -d "$db_name" \
michael@290 77 -c "DROP LANGUAGE plpgsql CASCADE;" 2>&1 | grep -v NOTICE
michael@290 78 ( echo "DROP DATABASE $db_name;"
michael@290 79 echo "DROP TABLESPACE $db_name;"
michael@290 80 echo "DROP ROLE $db_user;"
michael@290 81 ) | PGPASSWORD="$db_spass" @l_prefix@/bin/psql -q -U "$db_suser" -d "$db_sname" -f-
michael@290 82 ;;
michael@290 83
michael@290 84 edit )
michael@290 85 PGPASSWORD="$db_spass" @l_prefix@/bin/psql -U "$db_suser" -d "$db_name"
michael@290 86 ;;
michael@290 87 esac
michael@290 88

mercurial