user's can't set/unset site in Login Details without the proper authorization
[plstackapi.git] / planetstack / planetstack-backend.py
old mode 100755 (executable)
new mode 100644 (file)
index 7fac3d6..7d403c5
@@ -3,7 +3,12 @@ import os
 import argparse
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
 from observer.backend import Backend
-from planetstack.config import Config 
+from planetstack.config import Config
+
+try:
+    from django import setup as django_setup # django 1.7
+except:
+    django_setup = False
 
 config = Config()
 
@@ -17,22 +22,29 @@ def daemon():
     devnull = os.open(os.devnull, os.O_RDWR)
     os.dup2(devnull, 0)
     # xxx fixme - this is just to make sure that nothing gets stupidly lost - should use devnull
-    logdir=os.path.dirname(config.observer.logfile)
+    logdir=os.path.dirname(config.observer_logfile)
     # when installed in standalone we might not have httpd installed
     if not os.path.isdir(logdir): os.mkdir(logdir)
-    crashlog = os.open('%s'%config.observer.logfile, os.O_RDWR | os.O_APPEND | os.O_CREAT, 0644)
+    crashlog = os.open('%s'%config.observer_logfile, os.O_RDWR | os.O_APPEND | os.O_CREAT, 0644)
     os.dup2(crashlog, 1)
     os.dup2(crashlog, 2)
 
 def main():
     # Generate command line parser
     parser = argparse.ArgumentParser(usage='%(prog)s [options]')
-    parser.add_argument('-d', '--daemon', dest='daemon', action='store_true', default=False, 
+    parser.add_argument('-d', '--daemon', dest='daemon', action='store_true', default=False,
                         help='Run as daemon.')
+    # smbaker: util/config.py parses sys.argv[] directly to get config file name; include the option here to avoid
+    #   throwing unrecognized argument exceptions
+    parser.add_argument('-C', '--config', dest='config_file', action='store', default="/opt/planetstack/plstackapi_config",
+                        help='Name of config file.')
     args = parser.parse_args()
-       
+
     if args.daemon: daemon()
 
+    if django_setup: # 1.7
+        django_setup()
+
     backend = Backend()
     backend.run()