Minimal virtualenv for swagger docs

Change-Id: I63815145fc4049373854f32388558912fe4382e3
diff --git a/docs/.gitignore b/docs/.gitignore
index 8bec8ec..d1adcde 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -1 +1,2 @@
-_book/
\ No newline at end of file
+_book/
+venv-xosdocs
diff --git a/docs/Makefile b/docs/Makefile
index 76079dc..536170d 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -1,11 +1,19 @@
+DOCSDIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
+
 swagger: swagger_clean swagger_docs swagger_serve_spec
 
-swagger_docs:
-	python scripts/swagger_docs.py
+venv-xosdocs:
+	bash venv-xosdocs.sh
+
+swagger_docs: venv-xosdocs
+	bash -c 'source $(DOCSDIR)venv-xosdocs/bin/activate && python $(DOCSDIR)scripts/swagger_docs.py'
 
 swagger_clean:
 	rm -rf swagger/specs/*
 
+venv_clean:
+	rm -rf $(DOCSDIR)venv-xosdocs
+
 swagger_serve_spec:
 	http-server --cors ./swagger
 
diff --git a/docs/venv-xosdocs.sh b/docs/venv-xosdocs.sh
new file mode 100755
index 0000000..a1c4dfa
--- /dev/null
+++ b/docs/venv-xosdocs.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+BASEDIR=$(pwd)
+VENVDIR=venv-xosdocs
+
+# create venv if it's not yet there
+if [ ! -d "$BASEDIR/$VENVDIR" ]; then
+    echo "Setting up virtualenv for XOS Swagger Docs"
+    virtualenv -q $BASEDIR/$VENVDIR --no-site-packages
+    pip install --upgrade pip
+    echo "Virtualenv created."
+fi
+
+# activate the virtual env
+if [ ! $VIRTUAL_ENV ]; then
+    source $BASEDIR/$VENVDIR/bin/activate
+    echo "Virtualenv activated."
+fi
+
+# install pip packages
+pip install -e $BASEDIR/$VENVDIR/../../lib/xos-genx
+pip install plyxproto jinja2 pattern astunparse pyyaml
+