davical/davical-setup.sh

Sun, 29 May 2011 16:29:06 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sun, 29 May 2011 16:29:06 +0200
changeset 344
e33c1efbd60f
parent 295
adc4bc1f8985
child 396
610cba0674b9
permissions
-rw-r--r--

Update, correct, improve build configuration and packaging logic.
Update to new version of vendor software, bump copyright date, remove implicit
gcc dependency, add comments for Trolltech bug tracking, correct enforced
dynamic library linkage, and install mysterious process stub binary.

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