about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2022-01-28 13:38:20 +0530
committerArun Isaac2022-01-28 13:38:20 +0530
commit2b629077ba1ec52233c118707d44dca2fb5e6afb (patch)
tree29adcbc4a012cd14a26aba5381b9507f0eb2243b
parentfab4168e813524f8d904cd93e1e4810f9768a09c (diff)
downloadgenenetwork2-2b629077ba1ec52233c118707d44dca2fb5e6afb.tar.gz
Revert "bin: Do not set environment variables set by guix shell."
This reverts commit 344e428126b60932bff4c62c5ded8c36519155e8.
-rw-r--r--README.md4
-rwxr-xr-xbin/genenetwork234
2 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2b41a415..7b4fc01f 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,10 @@ Also mariadb and redis need to be running, see
 
 ## Development
 
+It may be useful to pull in the GN3 python modules locally. For this
+use `GN3_PYTHONPATH` environment that gets injected in
+the ./bin/genenetwork2 startup.
+
 ## Testing
 
 To have tests pass, the redis and mariadb instance should be running, because of
diff --git a/bin/genenetwork2 b/bin/genenetwork2
index 7669a89a..f1e04eef 100755
--- a/bin/genenetwork2
+++ b/bin/genenetwork2
@@ -91,7 +91,14 @@ fi
 export GN2_SETTINGS=$settings     # Python
 echo GN2_SETTINGS=$settings
 
+export PATH=$GN2_PROFILE/bin:$PATH
+export PYTHONPATH="$GN2_PROFILE/lib/python3.8/site-packages" # never inject another PYTHONPATH!!
+export R_LIBS_SITE=$GN2_PROFILE/site-library
 export JS_GUIX_PATH=$GN2_PROFILE/share/genenetwork2/javascript
+export GUIX_GTK3_PATH="$GN2_PROFILE/lib/gtk-3.0"
+export GI_TYPELIB_PATH="$GN2_PROFILE/lib/girepository-1.0"
+export XDG_DATA_DIRS="$GN2_PROFILE/share"
+export GIO_EXTRA_MODULES="$GN2_PROFILE/lib/gio/modules"
 export LC_ALL=C # FIXME
 export GUIX_GENENETWORK_FILES="$GN2_PROFILE/share/genenetwork2"
 export PLINK_COMMAND="$GN2_PROFILE/bin/plink2"
@@ -99,6 +106,25 @@ export GEMMA_COMMAND="$GN2_PROFILE/bin/gemma"
 if [ -z $GEMMA_WRAPPER_COMMAND ]; then
     export GEMMA_WRAPPER_COMMAND="$GN2_PROFILE/bin/gemma-wrapper"
 fi
+while IFS=":" read -ra PPATH; do
+    for PPART in "${PPATH[@]}"; do
+        if [ ! -d $PPART ] ; then echo "$PPART in PYTHONPATH not valid $PYTHONPATH" ; exit 1 ; fi
+    done
+done <<< "$PYTHONPATH"
+if [ ! -d $R_LIBS_SITE ] ; then echo "R_LIBS_SITE not valid "$R_LIBS_SITE ; exit 1 ; fi
+if [ -z $PYTHONPATH ] ; then
+    echo "ERROR PYTHONPATH has not been set - use GN2_PROFILE!"
+    exit 1
+fi
+if [ ! -d $R_LIBS_SITE ] ; then
+    echo "ERROR R_LIBS_SITE has not been set correctly (we only allow one path) - use GN2_PROFILE!"
+    echo "Paste into your shell the output of (for example)"
+    echo "guix package -p \$GN2_PROFILE --search-paths"
+    exit 1
+fi
+
+# We may change this one:
+export PYTHONPATH=$PYTHON_GN_PATH:$GN2_BASE_DIR/wqflask:$GN3_PYTHONPATH:$PYTHONPATH
 
 # Our UNIX TMPDIR defaults to /tmp - change this on a shared server
 if [ -z $TMPDIR ]; then
@@ -114,6 +140,7 @@ set|grep TMPDIR
 if [ "$1" = '-c' ] ; then
     cd $GN2_BASE_DIR/wqflask
     cmd=${2#wqflask/}
+    echo PYTHONPATH=$PYTHONPATH
     shift ; shift
     echo RUNNING COMMAND $cmd $*
     python $cmd $*
@@ -124,6 +151,7 @@ fi
 if [ "$1" = "-cli" ] ; then
     cd $GN2_BASE_DIR/wqflask
     cmd=$2
+    echo PYTHONPATH=$PYTHONPATH
     shift ; shift
     echo RUNNING COMMAND $cmd $*
     $cmd $*
@@ -132,12 +160,14 @@ fi
 if [ "$1" = '-gunicorn' ] ; then
     cd $GN2_BASE_DIR/wqflask
     cmd=$2
+    echo PYTHONPATH=$PYTHONPATH
     echo RUNNING gunicorn $cmd
     gunicorn $cmd
     exit $?
 fi
 if [ "$1" = '-gunicorn-dev' ] ; then
     cd $GN2_BASE_DIR/wqflask
+    echo PYTHONPATH=$PYTHONPATH
     if [ -z $SERVER_PORT ]; then echo "ERROR: Provide a SERVER_PORT" ; exit 1 ; fi
     cmd="--bind 0.0.0.0:$SERVER_PORT --workers=1 --timeout 180 --reload wsgi"
     echo RUNNING gunicorn $cmd
@@ -146,6 +176,7 @@ if [ "$1" = '-gunicorn-dev' ] ; then
 fi
 if [ "$1" = '-gunicorn-prod' ] ; then
     cd $GN2_BASE_DIR/wqflask
+    echo PYTHONPATH=$PYTHONPATH
     if [ -z $SERVER_PORT ]; then echo "ERROR: Provide a SERVER_PORT" ; exit 1 ; fi
     PID=$TMPDIR/gunicorn.$USER.pid
     cmd="--bind 0.0.0.0:$SERVER_PORT --pid $PID --workers 20 --keep-alive 6000 --max-requests 100 --max-requests-jitter 30 --timeout 1200 wsgi"
@@ -159,6 +190,9 @@ echo -n "dir $TMPDIR
 dbfilename gn2.rdb
 " | redis-server - &
 
+# Overrides for packages that are not yet public (currently r-auwerx)
+# export R_LIBS_SITE=$R_LIBS_SITE:$HOME/.Rlibs/das1i1pm54dj6lbdcsw5w0sdwhccyj1a-r-3.3.2/lib/R/lib
+
 # Start the flask server running GN2
 cd $GN2_BASE_DIR/wqflask
 echo "Starting with $settings"