Skip to content
Snippets Groups Projects
start 3.23 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__)")
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/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"
	else
	    echo "No odoo found, did you activate your env?"
	    exit 1	
	fi
    fi
fi

odoo=$(dirname $(dirname $module_path))

if [[ "$odoo" =~ ^.*\.egg$ ]]; then
    odoo = "/usr/bin"
fi
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
echo "Odoo directory: $odoo"
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
echo "Odoo version: $odoo_version"

# 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
Vincent Hatakeyama's avatar
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']+['${project_home}/'+line for line in c.get('odoo_scripts', 'addon_dirs', '').split()]))")"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
	fi
    fi
fi
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
echo $python $odoo/openerp-server $config $db_host $data_dir $addons_path $args
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
$python $odoo/openerp-server $config $db_host $data_dir $addons_path $args