#!/bin/zsh function start() { docker-compose up -d } function stop() { docker-compose stop } function start-db() { docker-compose up -d db pgadmin } function log() { docker logs odoo -f } function venv-init() { python3 -m venv venv source venv/bin/activate } function activate-venv() { source ../venv/bin/activate } function locale() { export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 } function install-src() { cd odoo activate-venv pip install setuptools psycopg2-binary watchdog phonenumbers pip install -r requirements.txt cd .. } function init-db() { cd odoo locale activate-venv && ./odoo-bin --init base,web -d odoo --db_host=localhost -r odoo -w odoo --stop-after-init cd .. } function start-src() { cd odoo locale activate-venv && ./odoo-bin --config=../config/odoo-src.conf --db_host=localhost -r odoo -w odoo --dev=all cd .. } function scaffold-src() { if test -z "$1" then echo "\$1 is empty" else cd odoo python3 odoo-bin scaffold $1 ../addons cd .. fi } function drop-db() { if test -z "$1" then echo "\$1 is empty" else psql postgres://odoo:odoo@localhost/postgres -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$1';" psql postgres://odoo:odoo@localhost/postgres -c "DROP DATABASE $1;" fi } case "$1" in start) start ;; stop) stop ;; log) log ;; start-db) start-db ;; venv-init) venv-init ;; install-src) install-src ;; init-db) init-db ;; start-src) start-src ;; scaffold-src) scaffold-src $2 ;; drop-db) drop-db $2 ;; compile-managed-modules) ./scripts/compile-managed-modules ;; copy-managed-modules) ./scripts/copy-managed-modules ;; remove-managed-modules) ./scripts/remove-managed-modules ;; *) echo $"Usage: $0 {start||stop|start-db|install-src|init-db|start-src|scaffold-src|drop-db|compile-managed-modules|copy-managed-modules|remove-managed-modules}" exit 1 esac