From 0cc0ee90943489cc0f3852f95e235d0bdf495d91 Mon Sep 17 00:00:00 2001 From: Daniel Markstedt Date: Mon, 6 Dec 2021 18:38:41 -0800 Subject: [PATCH] Add checks for bad venv, and delete if detected (#510) * Add checks for two known bad venv states * More sturdy replacement operator --- src/oled_monitor/start.sh | 13 +++++++++++++ src/web/start.sh | 15 ++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/oled_monitor/start.sh b/src/oled_monitor/start.sh index 955b1aaa..d42b1e27 100755 --- a/src/oled_monitor/start.sh +++ b/src/oled_monitor/start.sh @@ -65,6 +65,19 @@ if [[ `gcc --version | awk '/gcc/' | awk -F ' ' '{print $3}' | awk -F '.' '{prin echo $COMPILER_FLAGS fi +# Test for two known broken venv states +if test -e venv; then + GOOD_VENV=true + test -e venv/bin/activate && GOOD_VENV=false + pip list &> /dev/null + test $? -eq 0 && GOOD_VENV=false + if ! "$GOOD_VENV"; then + echo "Deleting bad python venv" + sudo rm -rf venv + fi +fi + +# Create the venv if it doesn't exist if ! test -e venv; then echo "Creating python venv for OLED Screen" python3 -m venv venv diff --git a/src/web/start.sh b/src/web/start.sh index cd4b18d6..ed59776e 100755 --- a/src/web/start.sh +++ b/src/web/start.sh @@ -31,6 +31,19 @@ if [ $ERROR = 1 ] ; then exit 1 fi +# Test for two known broken venv states +if test -e venv; then + GOOD_VENV=true + test -e venv/bin/activate && GOOD_VENV=false + pip list &> /dev/null + test $? -eq 0 && GOOD_VENV=false + if ! "$GOOD_VENV"; then + echo "Deleting bad python venv" + sudo rm -rf venv + fi +fi + +# Create the venv if it doesn't exist if ! test -e venv; then echo "Creating python venv for web server" python3 -m venv venv @@ -71,5 +84,5 @@ while [ "$1" != "" ]; do shift done -echo "Starting web server on port ${PORT-8080}..." +echo "Starting web server on port ${PORT:-8080}..." python3 web.py ${PORT}