Make venv dir name OS specific
This is to allow the Vagrantbox to mount your local dev on a Mac, yet
have venv working even when it includes OS-specific binary files.
diff --git a/Makefile b/Makefile
index 8e0bc3f..d009f74 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@
include setup.mk
-VENVDIR := venv
+VENVDIR := venv-$(shell uname -s | tr '[:upper:]' '[:lower:]')
.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8
@@ -95,12 +95,13 @@
${VENVDIR}/.built:
@ virtualenv ${VENVDIR}
@ . ${VENVDIR}/bin/activate && \
+ pip install --upgrade pip; \
if ! pip install -r requirements.txt; \
then \
echo "On MAC OS X, if the installation failed with an error \n'<openssl/opensslv.h>': file not found,"; \
echo "see the BUILD.md file for a workaround"; \
else \
- touch ${VENVDIR}/.built; \
+ uname -s > ${VENVDIR}/.built; \
fi
utest: venv
diff --git a/env.sh b/env.sh
index e88f121..0e29340 100644
--- a/env.sh
+++ b/env.sh
@@ -1,8 +1,16 @@
# sourcing this file is needed to make local development and integration testing work
export VOLTHA_BASE=$PWD
-# load local python virtualenv
-. venv/bin/activate
+# load local python virtualenv if exists, otherwise create it
+VENVDIR="venv-$(uname -s | tr '[:upper:]' '[:lower:]')"
+if [ ! -e "$VENVDIR/.built" ]; then
+ echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+ echo "Initializing OS-appropriate virtual env."
+ echo "This will take a few minutes."
+ echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
+ make venv
+fi
+. $VENVDIR/bin/activate
# assign DOCKER_HOST_IP to be the main ip address of this host
export DOCKER_HOST_IP=$(python voltha/nethelpers.py)