2afed4a57b29ae37dc009c64a2293f7c2859dff9
[lhc/ateliers.git] / etc / nginx / site.d / agendav / local.sh
1 sudo adduser www-"$site"-tls www-"$site"
2 sudo adduser php5_"$site" www-"$site"
3 sudo adduser php5_"$site" postgres-data
4 sudo adduser php5_"$site" log-php5-"$site"
5
6 hint="run before: remote/runit-configure nginx -- $site"
7 assert "sudo test -f /etc/agendav/config.php" hint
8 sudo chgrp php5_$site /etc/agendav/config.php
9
10 sudo sv start postgres
11 while ! sudo -u postgres psql </dev/null
12 do sleep 1; done
13
14 "$tool"/local/postgresql-user-create "$site"
15 "$tool"/local/postgresql-database-create "$site"
16 sudo -u postgres psql -AqtX "$site" <<-EOF
17 \set ON_ERROR_STOP on
18 GRANT USAGE ON SCHEMA pg_catalog TO $site;
19 EOF
20
21 eval home="~www-$site"
22 if test ! shared = "$(sudo -u postgres psql -AqtX "$site" <<-EOF
23 SELECT c.relname
24 FROM pg_catalog.pg_class c
25 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
26 WHERE c.relkind = 'r'
27 AND c.relname = 'shared'
28 AND n.nspname = 'public';
29 EOF
30 )"
31 then
32 sudo -u php5_"$site" psql -f - -U "$site" "$site" <<-EOF
33 \set ON_ERROR_STOP on
34 $(sudo cat "$home"/sql/pgsql.schema.sql)
35 EOF
36 fi
37
38 sudo install -d -m 750 -o root -g php5_"$site" \
39 /etc/agendav
40 sudo find "$tool"/etc/agendav -type f \
41 -not -name config.php \
42 -exec install -m 640 -o root -g php5_"$site" \
43 -t /etc/agendav/ {} +