#!/bin/bash # # This script is designed to handle various operations related to setting up, starting, stopping the python application # It will assume the requirements file is at the root (not with the source code) # export PYTHONPATH=$PWD/src pip_upgrade='sandbox/bin/pip freeze|sort |diff requirements.txt -|grep \<|grep -E " .+$" -o' install(){ virtualenv sandbox sandbox/bin/pip install -r requirements.txt `sandbox/bin/pip freeze|sort |diff requirements.txt -|grep \<|grep -E " .+$" -o|sandbox/bin/pip install --upgrade` } upgrade(){ git pull count=`sandbox/bin/pip freeze|sort |diff requirements.txt -|grep \<|grep -E " .+$" -o|wc -l` if [ ! "$count" = "0" ]; then `sandbox/bin/pip freeze|sort |diff requirements.txt -|grep \<|grep -E " .+$" -o|sandbox/bin/pip install --upgrade` else echo "No Upgrade required for sandbox" fi } start(){ sandbox/bin/python src/api/index.py --path $PWD/config.json --context monitor & } stop(){ ps -eo pid,command|grep python|grep -E "$PWD"|grep index.py|grep -E "^ {0,}[0-9]+" -o |xargs kill -9 } status(){ pid=`ps -eo pid,command|grep python|grep -E "$PWD"|grep index.py|grep -E "^ {0,}[0-9]+" -m 1 -o` if [ "$pid" = "" ]; then echo "Smart-Top API is Offline" else echo "Smart-Top API is Online $pid" fi } if [ "$1" = "start" ]; then if [ "$2" = "collector" ]; then start "collector" else start fi else $1 fi