about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xbin/genenetwork227
-rw-r--r--wqflask/base/data_set.py2
-rw-r--r--wqflask/base/webqtlConfig.py1
-rw-r--r--wqflask/maintenance/gen_select_dataset.py26
-rw-r--r--wqflask/utility/tools.py1
5 files changed, 43 insertions, 14 deletions
diff --git a/bin/genenetwork2 b/bin/genenetwork2
index d3bf3299..3a8c3ff4 100755
--- a/bin/genenetwork2
+++ b/bin/genenetwork2
@@ -1,6 +1,14 @@
 #! /bin/bash
 #
-# This will run the GN2 server (with default settings if none supplied).
+# This will run the GN2 server (with default settings if none supplied). Pass in
+# your own settings file, e.g.
+#
+#   ./bin/genenetwork2 ~/my_settings.py
+#
+# To run a maintenance script with settings (instead of the webserver) add that with
+# a -c switch, e.g.
+#
+#   ./bin/genenetwork2 ~/my_settings.py -c ./wqflask/maintenance/gen_select_dataset.py
 #
 # Environment settings can be used to preconfigure as well as a
 # settings.py file.
@@ -18,7 +26,12 @@ echo $GN2_BASE_PATH
 
 # Handle settings parameter
 settings=$1
-if [ -z $settings ]; then settings=$GN2_BASE_PATH/etc/default_settings.py ; fi
+if [ -z $settings ]; then
+    # get default
+    settings=$GN2_BASE_PATH/etc/default_settings.py
+else
+    shift
+fi
 if [ ! -e $settings ]; then
     echo "ERROR: can not locate settings file - pass it in the command line"
     exit 1
@@ -32,7 +45,15 @@ export PYTHONPATH=$GN2_BASE_PATH/wqflask:$PYTHONPATH
 if [ -z $TEMPDIR ]; then
     TEMPDIR="/tmp"
 fi
-                         
+
+# Now handle command parameter -c
+if [ $1 = '-c' ] ; then
+    echo PYTHONPATH=$PYTHONPATH
+    echo RUNNING COMMAND $2
+    /usr/bin/env python $2
+    exit 0
+fi
+
 echo "Starting the redis server:"
 echo -n "dir $TEMPDIR
 dbfilename gn2.rdb
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 1b4e1195..6cd3c8e6 100644
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -91,7 +91,7 @@ Publish or ProbeSet. E.g.
         if USE_GN_SERVER:
             data = menu_main()
         else:
-            file_name = "wqflask/static/new/javascript/dataset_menu_structure.json"
+            file_name = "wqflask/wqflask/static/new/javascript/dataset_menu_structure.json"
             with open(file_name, 'r') as fh:
                 data = json.load(fh)
 
diff --git a/wqflask/base/webqtlConfig.py b/wqflask/base/webqtlConfig.py
index f76d8140..8c67a6fd 100644
--- a/wqflask/base/webqtlConfig.py
+++ b/wqflask/base/webqtlConfig.py
@@ -80,4 +80,3 @@ PORTADDR = "http://50.16.251.170"
 INFOPAGEHREF = '/dbdoc/%s.html'
 CGIDIR = '/webqtl/' #XZ: The variable name 'CGIDIR' should be changed to 'PYTHONDIR'
 SCRIPTFILE = 'main.py'
-
diff --git a/wqflask/maintenance/gen_select_dataset.py b/wqflask/maintenance/gen_select_dataset.py
index d39bf4a5..5c25c15b 100644
--- a/wqflask/maintenance/gen_select_dataset.py
+++ b/wqflask/maintenance/gen_select_dataset.py
@@ -1,7 +1,9 @@
 """Script that generates the data for the main dropdown menus on the home page
 
 Writes out data as /static/new/javascript/dataset_menu_structure.json
-It needs to be run manually when database has been changed.
+It needs to be run manually when database has been changed. Run it as
+
+    python gen_select_dataset.py
 
 """
 
@@ -37,9 +39,15 @@ from __future__ import print_function, division
 #print("cdict is:", cdict)
 
 import sys
-# import zach_settings # no hard code paths!
 
-# import MySQLdb
+# NEW: Note we prepend the current path - otherwise a guix instance of GN2 is used instead
+sys.path.insert(0,'./wqflask')
+# NEW: import app to avoid a circular dependency on utility.tools
+from wqflask import app
+
+from utility.tools import locate, locate_ignore_error, TEMPDIR, SQL_URI
+
+import MySQLdb
 
 # import simplejson as json
 import urlparse
@@ -55,14 +63,13 @@ from pprint import pformat as pf
 
 #conn = Engine.connect()
 
-print('ERROR: This conversion is now OBSOLETE as the menu gets built from the database in Javascript using GN_SERVER instead!')
-sys.exit()
+print('WARNING: This conversion is now OBSOLETE as the menu gets built from the database in Javascript using GN_SERVER instead!')
 
 
 def parse_db_uri(db_uri):
     """Converts a database URI to the db name, host name, user name, and password"""
 
-    parsed_uri = urlparse.urlparse(zach_settings.DB_URI)
+    parsed_uri = urlparse.urlparse(SQL_URI)
 
     db_conn_info = dict(
                         db = parsed_uri.path[1:],
@@ -70,6 +77,7 @@ def parse_db_uri(db_uri):
                         user = parsed_uri.username,
                         passwd = parsed_uri.password)
 
+    print(db_conn_info)
     return db_conn_info
 
 
@@ -258,7 +266,7 @@ def build_datasets(species, group, type_name):
 def main():
     """Generates and outputs (as json file) the data for the main dropdown menus on the home page"""
 
-    parse_db_uri(zach_settings.SQL_URI)
+    parse_db_uri(SQL_URI)
 
     species = get_species()
     groups = get_groups(species)
@@ -281,7 +289,7 @@ def main():
 
     #print("data:", data)
 
-    output_file = """../wqflask/static/new/javascript/dataset_menu_structure.json"""
+    output_file = """./wqflask/wqflask/static/new/javascript/dataset_menu_structure.json"""
 
     with open(output_file, 'w') as fh:
         json.dump(data, fh, indent="   ", sort_keys=True)
@@ -297,6 +305,6 @@ def _test_it():
     #print("build_datasets:", pf(datasets))
 
 if __name__ == '__main__':
-    Conn = MySQLdb.Connect(**parse_db_uri(zach_settings.SQL_URI))
+    Conn = MySQLdb.Connect(**parse_db_uri(SQL_URI))
     Cursor = Conn.cursor()
     main()
diff --git a/wqflask/utility/tools.py b/wqflask/utility/tools.py
index bb8241f5..2c8cc5c5 100644
--- a/wqflask/utility/tools.py
+++ b/wqflask/utility/tools.py
@@ -3,6 +3,7 @@
 
 import os
 import sys
+
 from wqflask import app
 
 # Use the standard logger here to avoid a circular dependency