Correction : Burette de la Cyclo de Paris Est.
[lhc/ateliers.git] / etc / sv / openerp_cyclo_paris_est / local.sh
index 777cbab..847de20 100644 (file)
@@ -1,17 +1,24 @@
 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
        # 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 \
@@ -28,9 +35,6 @@ do sleep 1; done
  --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" \
@@ -39,9 +43,9 @@ sudo install -d -m 2770 -o "$sv" -g "$sv"-addon \
  "$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
 
 for addon in \
@@ -57,24 +61,40 @@ for addon in \
         --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