1#!/usr/local/bin/bash
2### BEGIN INIT INFO
3# Provides:          odoo.py
4# Required-Start:    $remote_fs $syslog
5# Required-Stop:     $remote_fs $syslog
6# Default-Start:     2 3 4 5
7# Default-Stop:      0 1 6
8# Short-Description: Start odoo daemon at boot time
9# Description:       Enable service provided by daemon.
10# X-Interactive:     true
11### END INIT INFO
12## more info: http://wiki.debian.org/LSBInitScripts
13
14. /lib/lsb/init-functions
15
16PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
17DAEMON=/home/pi/odoo/odoo-bin
18NAME=odoo
19DESC=odoo
20CONFIG=/home/pi/odoo/addons/point_of_sale/tools/posbox/configuration/odoo.conf
21LOGFILE=/var/log/odoo/odoo-server.log
22PIDFILE=/var/run/${NAME}.pid
23MODULES=$(ls /home/pi/odoo/addons/ -m -w0 | tr -d ' ')
24USER=pi
25
26test -x $DAEMON || exit 0
27set -e
28
29function _start() {
30    # Wait for time to be synced or AP to start or max 30 seconds
31    cnt=30
32    while ! test -a /run/systemd/timesync/synchronized && ! ip route | grep 10.11.12.1 && ((cnt--)); do
33        sleep 1
34    done
35    start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER:$USER --background --make-pidfile --exec $DAEMON -- --config $CONFIG --logfile $LOGFILE --load=$MODULES
36}
37
38function _stop() {
39    start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --retry 3
40    rm -f $PIDFILE
41}
42
43function _status() {
44    start-stop-daemon --status --quiet --pidfile $PIDFILE
45    return $?
46}
47
48
49case "$1" in
50        start)
51                echo -n "Starting $DESC: "
52                _start
53                echo "ok"
54                ;;
55        stop)
56                echo -n "Stopping $DESC: "
57                _stop
58                echo "ok"
59                ;;
60        restart|force-reload)
61                echo -n "Restarting $DESC: "
62                _stop
63                sleep 1
64                _start
65                echo "ok"
66                ;;
67        status)
68                echo -n "Status of $DESC: "
69                _status && echo "running" || echo "stopped"
70                ;;
71        *)
72                N=/etc/init.d/$NAME
73                echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
74                exit 1
75                ;;
76esac
77
78exit 0
79