Make update.sh install the deps in a venv, and use them

simplifies the script and avoid cluttering the poezio/ directory.

also fix an unrelated test with slixmpp
This commit is contained in:
mathieui 2014-11-02 20:06:16 +01:00
parent 5ef948270b
commit d98f2dde25
No known key found for this signature in database
GPG key ID: C59F84CEEFD616E3
3 changed files with 48 additions and 61 deletions

View file

@ -1,5 +1,6 @@
#!/bin/sh #!/bin/sh
poezio_dir=$(dirname "$0") poezio_dir=$(dirname "$0")
VENV="poezio-venv"
if [ -d "$poezio_dir/.git" ] if [ -d "$poezio_dir/.git" ]
then then
@ -7,5 +8,18 @@ then
else else
args="0.8.3-dev" args="0.8.3-dev"
fi fi
exec python3 "$poezio_dir/src/poezio.py" -v "$args" "$@"
if [ -e "$poezio_dir/$VENV" ]
then
PYTHON3="$poezio_dir/$VENV/bin/python3"
else
echo ""
echo "WARNING: Not using the up-to-date launch format"
echo "Run ./update.sh again to create a virtualenv with the deps"
echo "(or ignore this message if you don't want to)"
echo ""
PYTHON3=python3
fi
exec "$PYTHON3" "$poezio_dir/src/poezio.py" -v "$args" "$@"

View file

@ -8,7 +8,7 @@ sys.path.append('src')
import time import time
import pytest import pytest
import datetime import datetime
from sleekxmpp import JID from slixmpp import JID
from datetime import timedelta from datetime import timedelta
from common import (datetime_tuple, get_utc_time, get_local_time, shell_split, from common import (datetime_tuple, get_utc_time, get_local_time, shell_split,
find_argument_quoted, find_argument_unquoted, find_argument_quoted, find_argument_unquoted,

View file

@ -1,70 +1,43 @@
#!/bin/sh #!/bin/sh
# Use this script to Download or Update all dependances to their last # Use this script to download or update all dependencies to their last
# developpement version. # developpement version.
# The dependances will be placed in the sources directory, so you do not # The dependencies will be located in a virtualenv, so you do not
# need to install them on your system at all. # need to install them on your system at all.
# Use launch.sh to start poezio directly from here # Use launch.sh to start poezio directly from here
error() { cd "$(dirname "$0")"
echo -e "\033[1;31mThe script failed to update $1.\033[0m" VENV="poezio-venv"
echo -e "\033[1;31mPlease investigate.\033[0m"
echo 'Updating poezio'
git pull origin slix || {
echo "The script failed to update poezio."
exit 1 exit 1
} }
echo 'Updating poezio' if [ -e "$VENV" ]
git pull origin slix || error poezio then
# In case of a python version upgrade
echo 'Trying to upgrade the virtualenv'
pyvenv --upgrade "$VENV"
source "$VENV/bin/activate"
echo 'Updating the poezio dependencies'
pip install -r requirements.txt --upgrade
echo 'Updating the poezio plugin dependencies'
pip install -r requirements-plugins.txt --upgrade
else
echo "Creating the $VENV virtualenv"
pyvenv "$VENV"
source "$VENV/bin/activate"
cd "$VENV" # needed to download slixmpp inside the venv
echo 'Installing the poezio dependencies using pip'
pip install -r "../requirements.txt"
echo 'Installing the poezio plugin dependencies using pip'
pip install -r "../requirements-plugins.txt"
cd ..
fi
make make
if [ $? -ne 0 ]
then
echo -e "It seems that you do not have the python development"\
"files.\nSearch for a package named python3-dev or python3-devel"\
"in your repos."
exit -1
fi
if [ -e "slixmpp" ]
then
echo "Updating slixmpp"
cd slixmpp
git pull || error slixmpp
cd ..
else
echo "Downloading slixmpp"
git clone git://git.louiz.org/slixmpp || error slixmpp
fi
if [ -e ".dnspython.tgz" ]
then
if [ -e "dnspython" ]
then
echo "dnspython up to date"
else
echo "Restoring dnspython"
tar xfz .dnspython.tgz
mv dnspython3-1.10.0 dnspython
fi
else
echo "Downloading dnspython"
wget -c -q -O .dnspython.tgz http://www.dnspython.org/kits3/1.10.0/dnspython3-1.10.0.tar.gz || error dnspython
rm -fr dnspython
tar xfz .dnspython.tgz
mv dnspython3-1.10.0 dnspython
fi
cd src
if [ -h "dns" ]
then
echo 'Link src/dns already exists'
else
echo "Creating link src/dns"
ln -s ../dnspython/dns dns
fi
if [ -h "slixmpp" ]
then
echo 'Link src/slixmpp already exists'
else
echo "Creating link src/slixmpp"
ln -s ../slixmpp/slixmpp slixmpp
fi