home=/home/"$sv"
-"$tool"/local/runit-sv-configure postgres
-"$tool"/local/runit-sv-start postgres
-while ! sudo -u postgres psql </dev/null
-do sleep 1; done
-
-"$tool"/local/apt-get-install openerp --force-yes
+"$tool"/local/apt-get-install openerp --force-yes --no-upgrade
# XXX: --force-yes car les paquets de nightly.openerp.com
# ne sont pas signés par OpenPGP..
"$tool"/local/insserv-remove openerp
+while ! sudo -u postgres psql </dev/null
+do sleep 1; done
"$tool"/local/postgresql-user-create "$sv"
"$tool"/local/postgresql-database-create "$sv"
+sudo -u postgres psql -AqtX "$sv" <<-EOF
+ \set ON_ERROR_STOP on
+ GRANT USAGE ON SCHEMA pg_catalog TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_attribute TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_class TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_constraint TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_indexes TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_proc TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_type TO $sv;
+ EOF
"$tool"/local/adduser "$sv" \
--disabled-login \
--shell /bin/false \
--system
-sudo install -d -m 710 -o root -g "$sv" \
- /etc/sv/"$sv" \
- /etc/sv/"$sv"/supervise
sudo install -d -m 1777 -o root -g root \
/etc/openerp
sudo install -d -m 3771 -o "$sv" -g "$sv" \
"$home"/addon.d
sudo install -d -m 750 -o "$sv" -g "$sv" \
"$home"/etc \
- /etc/openerp/"$sv"
+ /etc/openerp/"${sv#openerp_}"
sudo ln -fns \
- /etc/openerp/"$sv" \
+ /etc/openerp/"${sv#openerp_}" \
"$home"/etc/openerp
+sudo adduser git "$sv"-addon
+sudo adduser "$sv" "$sv"-addon
+sudo adduser "$sv" postgres-data
+
for addon in \
bikecoop \
bikecoop_l10n_fr \
--git-dir ~git-data/burette/"$addon".git \
--work-tree="$home"/addon.d/"$addon" \
checkout -f master
- #sudo -u git git \
- # --git-dir ~git-data/burette/"$addon".git \
- # --work-tree="$home"/addon.d/"$addon" \
- # clean -d -f -f -x
+ sudo -u git git \
+ --git-dir ~git-data/burette/"$addon".git \
+ --work-tree="$home"/addon.d/"$addon" \
+ clean -d -f -f -x
+ sudo chmod a-x \
+ /home/git/pub/burette/"$addon".git/hooks/post-update.sample
sudo install -m 550 -o git -g git /dev/stdin \
/home/git/pub/burette/"$addon".git/hooks/post-update <<-EOF
- git \
- --git-dir ~git-data/burette/"$addon".git \
- --work-tree="$home"/addon.d/"$addon" \
- checkout -f master
- #git \
- # --git-dir ~git-data/burette/"$addon".git \
- # --work-tree="$home"/addon.d/"$addon" \
- # clean -d -f -f -x
- #sv restart "$sv"
+ #!/bin/sh -efux
+ find . -type f -perm /+x -name 'post-update.*' |
+ while IFS= read -r hook
+ do "\$hook" "\$@"
+ done
+ EOF
+ sudo install -m 550 -o git -g git /dev/stdin \
+ /home/git/pub/burette/"$addon".git/hooks/post-update."$sv" <<-EOF
+ #!/bin/sh -efux
+ case \$1 in
+ (refs/heads/master)
+ git \\
+ --git-dir ~git-data/burette/"$addon".git \\
+ --work-tree="$home"/addon.d/"$addon" \\
+ checkout -f master
+ git \\
+ --git-dir ~git-data/burette/"$addon".git \\
+ --work-tree="$home"/addon.d/"$addon" \\
+ clean -d -f -f -x
+ #sv restart "$sv"
+ ;;
+ esac
EOF
done
-sudo adduser git "$sv"-addon
-sudo adduser "$sv" "$sv"-addon
-sudo adduser "$sv" postgres-data
+exit 42