Correction : openerp_server : permet list_db .
[lhc/ateliers.git] / etc / sv / openerp_server_lhc / local.sh
1 home=/home/"$sv"
2
3 while ! sudo -u postgres psql </dev/null
4 do sleep 1; done
5 "$tool"/local/postgresql-user-create "$sv"
6 "$tool"/local/postgresql-database-create "$sv"
7 sudo -u postgres psql -AqtX "$sv" <<-EOF
8 \set ON_ERROR_STOP on
9 GRANT USAGE ON SCHEMA pg_catalog TO $sv;
10 GRANT SELECT ON TABLE pg_catalog.pg_attribute TO $sv;
11 GRANT SELECT ON TABLE pg_catalog.pg_class TO $sv;
12 GRANT SELECT ON TABLE pg_catalog.pg_constraint TO $sv;
13 GRANT SELECT ON TABLE pg_catalog.pg_indexes TO $sv;
14 GRANT SELECT ON TABLE pg_catalog.pg_proc TO $sv;
15 GRANT SELECT ON TABLE pg_catalog.pg_type TO $sv;
16 EOF
17 sudo -u postgres psql -AqtX template1 <<-EOF
18 \set ON_ERROR_STOP on
19 GRANT CONNECT ON DATABASE template1 TO $sv;
20 GRANT USAGE ON SCHEMA pg_catalog TO $sv;
21 GRANT SELECT ON TABLE pg_catalog.pg_database TO $sv;
22 GRANT SELECT ON TABLE pg_catalog.pg_user TO $sv;
23 EOF
24
25 "$tool"/local/adduser "$sv" \
26 --disabled-login \
27 --disabled-password \
28 --group \
29 --home "$home" \
30 --shell /bin/false \
31 --system
32 "$tool"/local/adduser "$sv"-addon \
33 --disabled-login \
34 --disabled-password \
35 --group \
36 --home "$home"/addon.d \
37 --shell /bin/false \
38 --system
39
40 sudo install -d -m 1777 -o root -g root \
41 /etc/openerp
42 sudo install -d -m 3771 -o "$sv" -g "$sv" \
43 "$home"
44 sudo -u "$sv" wget -c http://nightly.openerp.com/6.0/6.0/openerp-server-6.0.4-20130520-r3663.tar.gz -O /tmp/openerp-server.tar.gz
45 sudo -u "$sv" tar -xf /tmp/openerp-server.tar.gz -C "$home"
46 "$tool"/local/apt-get-install patch
47 sudo -u "$sv" patch -d "$home"/openerp-server-6.0.4/bin/addons/document_webdav/ <<- EOF
48 diff -Nru document_webdav.old/dav_fs.py document_webdav/dav_fs.py
49 --- document_webdav.old/dav_fs.py 2012-08-09 01:01:18.000000000 +0200
50 +++ document_webdav/dav_fs.py 2012-11-28 18:16:55.762897399 +0100
51 @@ -28,12 +28,12 @@
52 import netsvc
53 import urlparse
54
55 -from DAV.constants import COLLECTION #, OBJECT
56 -from DAV.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
57 -from DAV.iface import dav_interface
58 +from pywebdav.lib.constants import COLLECTION #, OBJECT
59 +from pywebdav.lib.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
60 +from pywebdav.lib.iface import dav_interface
61 import urllib
62
63 -from DAV.davcmd import copyone, copytree, moveone, movetree, delone, deltree
64 +from pywebdav.lib.davcmd import copyone, copytree, moveone, movetree, delone, deltree
65 from cache import memoize
66 from tools import misc
67
68 diff -Nru document_webdav.old/webdav.py document_webdav/webdav.py
69 --- document_webdav.old/webdav.py 2012-11-28 18:08:16.326780608 +0100
70 +++ document_webdav/webdav.py 2012-11-28 18:22:20.582972764 +0100
71 @@ -30,11 +30,11 @@
72 from tools.translate import _
73
74 try:
75 - from DAV import utils
76 - from DAV.propfind import PROPFIND
77 - from DAV.report import REPORT
78 + from pywebdav.lib import utils
79 + from pywebdav.lib.propfind import PROPFIND
80 + from pywebdav.lib.report import REPORT
81 except ImportError:
82 - raise osv.except_osv(_('PyWebDAV Import Error!'), _('Please install PyWebDAV from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.4.tar.gz&can=2&q=/'))
83 + raise osv.except_osv(_('PyWebDAV Import Error!'), _('Please install PyWebDAV from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.8.tar.gz&can=2&q='))
84
85 import tools
86
87 diff -Nru document_webdav.old/webdav_server.py document_webdav/webdav_server.py
88 --- document_webdav.old/webdav_server.py 2012-10-03 01:01:16.000000000 +0200
89 +++ document_webdav/webdav_server.py 2012-11-28 18:16:34.066892588 +0100
90 @@ -38,7 +38,7 @@
91 import netsvc
92 from dav_fs import openerp_dav_handler
93 from tools.config import config
94 -from DAV.WebDAVServer import DAVRequestHandler
95 +from pywebdav.lib.WebDAVServer import DAVRequestHandler
96 from service import http_server
97 from service.websrv_lib import FixSendError, HttpOptions
98 from BaseHTTPServer import BaseHTTPRequestHandler
99 @@ -48,10 +48,10 @@
100 import time
101 from string import atoi
102 import addons
103 -from DAV.utils import IfParser, TagList
104 -from DAV.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
105 -from DAV.propfind import PROPFIND
106 -# from DAV.constants import DAV_VERSION_1, DAV_VERSION_2
107 +from pywebdav.lib.utils import IfParser, TagList
108 +from pywebdav.lib.errors import DAV_Error, DAV_Forbidden, DAV_NotFound
109 +from pywebdav.lib.propfind import PROPFIND
110 +# from pywebdav.lib.constants import DAV_VERSION_1, DAV_VERSION_2
111 from xml.dom import minidom
112 from redirect import RedirectHTTPHandler
113 _logger = logging.getLogger(__name__)
114 EOF
115
116 sudo install -d -m 750 -o "$sv" -g "$sv" \
117 "$home"/var/ \
118 "$home"/var/filestore
119
120 sudo install -d -m 2770 -o "$sv" -g "$sv"-addon \
121 "$home"/addon.d
122 sudo install -d -m 750 -o "$sv" -g "$sv" \
123 "$home"/etc \
124 /etc/openerp/"${sv#openerp_}"
125 sudo ln -fns \
126 /etc/openerp/"${sv#openerp_}" \
127 "$home"/etc/openerp
128
129 sudo adduser git "$sv"-addon
130 sudo adduser "$sv" "$sv"-addon
131 sudo adduser "$sv" postgres-data
132
133 for addon in \
134 lhc
135 do
136 sudo install -d -m 2771 -o "$sv" -g "$sv"-addon \
137 "$home"/addon.d/"$addon"
138 sudo ln -s "$home"/addon.d/"$addon" "$home"/addon.d/lhc_custom_oe
139 sudo -u git git \
140 --git-dir ~git-data/burette/"$addon".git \
141 --work-tree="$home"/addon.d/"$addon" \
142 checkout -f master
143 sudo -u git git \
144 --git-dir ~git-data/burette/"$addon".git \
145 --work-tree="$home"/addon.d/"$addon" \
146 clean -d -f -f -x
147 sudo chmod a-x \
148 /home/git/pub/burette/"$addon".git/hooks/post-update.sample
149 sudo install -m 550 -o git -g git /dev/stdin \
150 /home/git/pub/burette/"$addon".git/hooks/post-update <<-EOF
151 #!/bin/sh -efux
152 find . -type f -perm /+x -name 'post-update.*' |
153 while IFS= read -r hook
154 do "\$hook" "\$@"
155 done
156 EOF
157 sudo install -m 550 -o git -g git /dev/stdin \
158 /home/git/pub/burette/"$addon".git/hooks/post-update."$sv" <<-EOF
159 #!/bin/sh -efux
160 case \$1 in
161 (refs/heads/master)
162 git \\
163 --git-dir ~git-data/burette/"$addon".git \\
164 --work-tree="$home"/addon.d/"$addon" \\
165 checkout -f master
166 git \\
167 --git-dir ~git-data/burette/"$addon".git \\
168 --work-tree="$home"/addon.d/"$addon" \\
169 clean -d -f -f -x
170 #sv restart "$sv"
171 ;;
172 esac
173 EOF
174 done