You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#!/bin/bash
set -eux # -x for verbose logging to juju debug-log
## ## Options (changeable thanks to ``/etc/charm/openerp.conf``) ##
OPENERP_PASSWORD=${OPENERP_PASSWORD:-openerp_password}
## 0k git remote path GIT_0K_BASE=${GIT_0K_BASE:-"git.0k.io:/var/git"}
## 0k git remote options GIT_0K_CLONE_OPTIONS=${GIT_0K_CLONE_OPTIONS:-""}
## 0k git-sub setup options GIT_0K_SUB_CLONE_OPTIONS=${GIT_0K_SUB_CLONE_OPTIONS:-""}
## 0k git default checkout reference (for 0k-oe root package) GIT_0K_CHECKOUT_REF=${GIT_0K_CHECKOUT_REF:-"8.0/0k/dev/master"}
release=$(lsb_release -c -s)
## ## Code ##
apt-get install sudo libxml2-dev libxslt-dev libpq-dev libyaml-dev \ zlib1g-dev libfreetype6-dev \ libsasl2-dev \ libjpeg-dev libmysqlclient-dev -y --force-yes
set +eux source /srv/virtualenv/default/bin/activate set -eux
## install deps for PIL compilations ## from http://www.sandersnewmedia.com/why/2012/04/16/installing-pil-virtualenv-ubuntu-1204
if ! [ -e "/usr/lib/libjpeg.so" ]; then if [ "$release" == "trusty" ]; then ## for some reason /etc/apt/sources.list can be WITHOUT deb-src lines apt-cache policy python-imaging | tail -n 1 | \ while read code url distrib arch type; do echo deb-src $url $(echo "$distrib" | tr "/" " "); done >> /etc/apt/sources.list && apt-get update fi if ! [ -d "/usr/include/freetype2/freetype" ]; then (cd /usr/include/freetype2 && ln -sf . freetype) fi
apt-get build-dep python-imaging -y --force-yes && ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/ && ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/ && ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/ fi
## Installing PIL with our archive is safer. #pip install pil ( cd /tmp && scp "$GIT_0K_BASE"/archives/PIL-1.1.7.tar.gz . && tar xvzf PIL-1.1.7.tar.gz && cd PIL-1.1.7 && python setup.py install )
pip install sact.epoch shyaml mock mysql-python
## Install pychart... from our repo as : ## download link in PyPi is dead, ## and gna.org was down recently ( scp "$GIT_0K_BASE/archives/PyChart-1.39.tar.gz" /tmp && cd /tmp && tar xvzf PyChart*.tar.gz && cd PyChart* && python setup.py install
)
## Install OOOP... from our git repo as: ## we have some bug correction and custom features
if ! [ -d "/opt/apps/ooop" ]; then ( cd /opt/apps && git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/ooop.git" && cd /opt/apps/ooop && git checkout 0k/prod/master &&
## beurk ln -sf /opt/apps/ooop/ooop.py /srv/virtualenv/default/lib/python2.7/ooop.py ) fi
## Install aerolib... from our git repo as:
if ! [ -d "/opt/apps/aeroolib" ]; then ( cd /opt/apps && git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/aeroolib.git" && cd /opt/apps/aeroolib && git checkout master &&
## beurk ln -sf /opt/apps/aeroolib/aeroolib/aeroolib /srv/virtualenv/default/lib/python2.7/aeroolib ) fi
## ## Install 0k-oe ##
( cd /opt/apps && git sub clone $GIT_0K_CLONE_OPTIONS $GIT_0K_SUB_CLONE_OPTIONS -b "$GIT_0K_CHECKOUT_REF" \ "$GIT_0K_BASE"/0k/0k-oe && cd 0k-oe && pip install -r odoo/requirements.txt && for req in addons/*/requirements.txt; do if [ -r "$req" ]; then pip install -r "$req" fi done
)
adduser --system --home=/var/lib/openerp --group openerp
## XXXvlab: warning password in charm !! cp -i etc/openerp-server.conf /etc/ sed -ri "s/%%PASSWORD%%/$OPENERP_PASSWORD/g" /etc/openerp-server.conf
cp -i etc/init.d/openerp-server /etc/init.d/
chown openerp /etc/openerp-server.conf chmod 600 /etc/openerp-server.conf chown openerp /etc/init.d/openerp-server
update-rc.d openerp-server defaults
mkdir -p /var/log/openerp touch /var/log/openerp/openerp-server.log chown openerp /var/log/openerp -R
cp -i etc/default/openerp-server /etc/default/openerp-server
## Install add-ons ## make a better way for installing add-ons
#addons_path=/opt/apps/openobject-addons/0k #if ! [ -d "$addons_path" ]; then # mkdir -p $addons_path # for addons in $(/var/git/list-addons 0k/dev/master | grep ^0k); do # git clone -s /var/git/$addons /opt/apps/openobject-addons/${addons%.git} # (cd /opt/apps/openobject-addons/${addons%.git} # git checkout 6.1/0k/prod/master || # git checkout 0k/prod/master || # git checkout 0k/dev/master || # git checkout 6.1/simplee/prod/master || # git checkout simplee/prod/master || # git checkout simplee/dev/master || # git checkout master # ) # done #else # echo 'WARNING: skipping modules installation as directory was already existent !' #fi
## Install werkzeug from github last version ## because last PyPi version is 8.4 and we need the 9.0+
( cd /tmp && git clone https://github.com/mitsuhiko/werkzeug.git && cd werkzeug && python setup.py install )
## ## Linking with external filestore ! ##
( cd /opt/apps/0k-oe/openobject-server/openerp && mkdir -p /var/openerp-filestore && ln -sf /var/openerp-filestore filestore && cd /var/openerp-filestore && chown openerp . )
## ## Install 0k-manage for the handy oe command ##
( if ! [ -d "/opt/apps/0k-manage" ]; then cd /opt/apps && git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/0k-manage.git" && cd /opt/apps/0k-manage && git checkout 0k/prod/master fi
## beurk ln -sf "/opt/apps/0k-manage/src/bin/oe" "/usr/local/bin/oe" )
|