FIX] packaging: odoo-ification
[odoo/odoo.git] / setup / redhat / postinstall.sh
1 #!/bin/bash
2
3 set -e
4
5 ODOO_CONFIGURATION_DIR=/etc/odoo
6 ODOO_CONFIGURATION_FILE=$ODOO_CONFIGURATION_DIR/openerp-server.conf
7 ODOO_DATA_DIR=/var/lib/odoo
8 ODOO_GROUP="odoo"
9 ODOO_LOG_DIR=/var/log/odoo
10 ODOO_USER="odoo"
11
12 if ! getent passwd | grep -q "^odoo:"; then
13     groupadd $ODOO_GROUP
14     adduser --system --no-create-home $ODOO_USER -g $ODOO_GROUP
15 fi
16 # Register "$ODOO_USER" as a postgres superuser
17 su - postgres -c "createuser -s $ODOO_USER" 2> /dev/null || true
18 # Configuration file
19 mkdir -p $ODOO_CONFIGURATION_DIR
20 # can't copy debian config-file as addons_path is not the same
21 echo "[options]
22 ; This is the password that allows database operations:
23 ; admin_passwd = admin
24 db_host = False
25 db_port = False
26 db_user = $ODOO_USER
27 db_password = False
28 addons_path = /usr/local/lib/python2.7/dist-packages/openerp/addons
29 " > $ODOO_CONFIGURATION_FILE
30 chown $ODOO_USER:$ODOO_GROUP $ODOO_CONFIGURATION_FILE
31 chmod 0640 $ODOO_CONFIGURATION_FILE
32 # Log
33 mkdir -p $ODOO_LOG_DIR
34 chown $ODOO_USER:$ODOO_GROUP $ODOO_LOG_DIR
35 chmod 0750 $ODOO_LOG_DIR
36 # Data dir
37 mkdir -p $ODOO_DATA_DIR
38 chown $ODOO_USER:$ODOO_GROUP $ODOO_DATA_DIR
39
40 INIT_FILE=/etc/init.d/openerp
41 touch $INIT_FILE
42 chmod 0700 $INIT_FILE
43 # FIXME this is a copy of debian/init file.
44 #       If anyone know how to tell bdist_rpm to use this file directly...
45 cat << 'EOF' > $INIT_FILE
46 #!/bin/bash
47 ### BEGIN INIT INFO
48 # Provides:          openerp-server
49 # Required-Start:    $remote_fs $syslog
50 # Required-Stop:     $remote_fs $syslog
51 # Default-Start:     2 3 4 5
52 # Default-Stop:      0 1 6
53 # Short-Description: Start openerp daemon at boot time
54 # Description:       Enable service provided by daemon.
55 # X-Interactive:     true
56 ### END INIT INFO
57 ## more info: http://wiki.debian.org/LSBInitScripts
58
59 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
60 DAEMON=/usr/bin/openerp-server
61 NAME=openerp
62 DESC=openerp
63 CONFIG=/etc/odoo/openerp-server.conf
64 LOGFILE=/var/log/odoo/openerp-server.log
65 PIDFILE=/var/run/${NAME}.pid
66 USER=odoo
67 export LOGNAME=$USER
68
69 test -x $DAEMON || exit 0
70 set -e
71
72 function _start() {
73     start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER:$USER --background --make-pidfile --exec $DAEMON -- --config $CONFIG --logfile $LOGFILE
74 }
75
76 function _stop() {
77     start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --retry 3
78     rm -f $PIDFILE
79 }
80
81 function _status() {
82     start-stop-daemon --status --quiet --pidfile $PIDFILE
83     return $?
84 }
85
86
87 case "$1" in
88         start)
89                 echo -n "Starting $DESC: "
90                 _start
91                 echo "ok"
92                 ;;
93         stop)
94                 echo -n "Stopping $DESC: "
95                 _stop
96                 echo "ok"
97                 ;;
98         restart|force-reload)
99                 echo -n "Restarting $DESC: "
100                 _stop
101                 sleep 1
102                 _start
103                 echo "ok"
104                 ;;
105         status)
106                 echo -n "Status of $DESC: "
107                 _status && echo "running" || echo "stopped"
108                 ;;
109         *)
110                 N=/etc/init.d/$NAME
111                 echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
112                 exit 1
113                 ;;
114 esac
115
116 exit 0
117 EOF