Newer
Older
#!/bin/sh
# vim: set shiftwidth=4 softtabstop=4:
#
# This script start odoo for development
#
# You can set ODOO_DATA_DIR and ODOO_DB_HOST if you want to avoid using the default value ($HOME/var/tmp and localhost)
#

Vincent Hatakeyama
committed
here=$(dirname $0)
project_home=$(cd $here && cd .. && echo $PWD)
echo "Starting odoo for development"
python=python
# module_path will be .../<directory>/openerp/__init__.pyc
module_path=$(python -B -c "import os;import openerp;print os.path.abspath(openerp.__file__)")
# By default, assume the Odoo executable is called "openerp-server".
# TODO Improve this detection and make it so Odoo 10 ("odoo-bin") is the default.
odoo_bin=openerp-server
if test -z "$module_path";
then
virtualenv_name=$(basename $(readlink -f $(dirname start)))
echo "No odoo found, trying $virtualenv_name virtualenvwrapper"
# assume you use virtualenvwrapper, and try the same env name as the project
python=$WORKON_HOME/$virtualenv_name/bin/python
if [ -e $python ];
then
module_path=$($python -B -c "import os;import openerp;print os.path.abspath(openerp.__file__)")
fi
if test -z "$module_path";
then
echo "No odoo found, trying /opt/odoo/sources/odoo/odoo-bin"
if test -e "/opt/odoo/sources/odoo/odoo-bin";
then
python=/usr/bin/python
module_path="/opt/odoo/sources/odoo/odoo/__init__.py"
odoo_bin=odoo-bin
else
echo "No odoo-bin found, trying /opt/odoo/sources/odoo/openerp-server"
if test -e "/opt/odoo/sources/odoo/openerp-server";
then
python=/usr/bin/python
module_path="/opt/odoo/sources/odoo/openerp/__init__.py"
odoo_bin=openerp-server
else
echo "No odoo found, did you activate your env?"
exit 1
fi
fi
fi
fi
odoo=$(dirname $(dirname $module_path))

Vincent Hatakeyama
committed

Vincent Hatakeyama
committed
odoo="/usr/local/bin"

Vincent Hatakeyama
committed
odoo_addons_path=${ODOO_ADDONS_PATH:-/opt/odoo/sources/odoo}
else
odoo_addons_path=${ODOO_ADDONS_PATH:-$odoo}

Vincent Hatakeyama
committed
fi

Vincent Hatakeyama
committed
echo "INFO - Odoo directory: $odoo"
echo "INFO - Odoo addons directory: $odoo_addons_path"
if [ -e "$odoo/.git" ];
then
odoo_version="git $(cd $odoo && git rev-parse HEAD)"
elif [ -e "$odoo/.bzr" ];
then
odoo_version="bzr $(cd $odoo && bzr revno)"
elif [ -e "$odoo/.hg" ];
then
odoo_version="hg $(cd $odoo && hg id)"
else
odoo_version="Unknown"
fi

Vincent Hatakeyama
committed
echo "INFO - Odoo version: $odoo_version"
ODOO_TYPE=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print c.get('odoo_scripts', 'odoo_type', 'odoo8')")
args=$*
if [ "$ODOO_TYPE" = "odoo8" ];
then
if echo $args | grep -q -e "\( \|^\)--data-dir";
then
data_dir=""
else
data_dir=" --data-dir=$odoo/var/tmp"
fi
else
data_dir=""
fi
if echo $args | grep -q -e "\( \|^\)--db_host";
then
db_host=""
else
db_host="--db_host=localhost"
fi
if echo $args | grep -q -e "\( \|^\)-c" -e "\( \|^\)--config";
then
config=""
addons_path=""
else
config="-c ${project_home}/conf/dev/odoo.conf"
if echo $args | grep -q -e "\( \|^\)--addons-path";
then
addons_path=""
else
if [ "$ODOO_TYPE" = "bzr" ];
then

Vincent Hatakeyama
committed
addons_path="--addons-path=$($python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print(','.join(['$HOME/src/openobject-server/openerp/addons','$HOME/src/openobject-addons','$HOME/src/openerp-web/addons']+['${project_home}/'+line for line in c.get('odoo_scripts', 'addon_dirs', '').split()]))")"

Vincent Hatakeyama
committed
addons_path="--addons-path=$($python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print(','.join(['$odoo_addons_path/addons']+['${project_home}/'+line for line in c.get('odoo_scripts', 'addon_dirs', '').split()]))")"
echo "DEBUG - command line is: $python $odoo/$odoo_bin $config $db_host $data_dir $addons_path $args"
$python $odoo/$odoo_bin $config $db_host $data_dir $addons_path $args