Skip to content
Snippets Groups Projects
start 4.02 KiB
Newer Older
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
#!/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)
#
here=$(dirname $0)
project_home=$(cd $here && cd .. && echo $PWD)
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
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
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
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
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
    fi
fi

odoo=$(dirname $(dirname $module_path))
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
if expr match $odoo  ^.*\.egg$ ;
then
    odoo_addons_path=${ODOO_ADDONS_PATH:-/opt/odoo/sources/odoo}
else
    odoo_addons_path=${ODOO_ADDONS_PATH:-$odoo}
echo "INFO - Odoo directory:        $odoo"
echo "INFO - Odoo addons directory: $odoo_addons_path"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
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's avatar
Vincent Hatakeyama committed

# odoo7, odoo8 or bzr
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
ODOO_TYPE=$(python -B -c "import ConfigParser ; c = ConfigParser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print c.get('odoo_scripts', 'odoo_type', 'odoo8')")
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed

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"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
    if echo $args | grep -q -e "\( \|^\)--addons-path";
    then
	addons_path=""
    else
	if [ "$ODOO_TYPE" = "bzr" ];
	then
	    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's avatar
Vincent Hatakeyama committed
	else
	    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