From 051952848a5a1461fb52ace6bd528ce7b7de19f6 Mon Sep 17 00:00:00 2001
From: Joao Pereira and Oliver Switzer <pair+jpereira+oswitzer@pivotal.io>
Date: Thu, 20 Apr 2017 16:57:20 -0400
Subject: [PATCH 2/2] - Removed execution of the setup file when application
 starts - Move creation of app directory to its own file

---
 web/pgAdmin4.py                                    |  8 +++-----
 web/pgadmin/setup/__init__.py                      |  1 +
 web/pgadmin/setup/create_directory_for_app_data.py | 12 ++++++++++++
 web/setup.py                                       |  5 ++---
 4 files changed, 18 insertions(+), 8 deletions(-)
 create mode 100644 web/pgadmin/setup/create_directory_for_app_data.py

diff --git a/web/pgAdmin4.py b/web/pgAdmin4.py
index 74dcc503..88075366 100644
--- a/web/pgAdmin4.py
+++ b/web/pgAdmin4.py
@@ -32,11 +32,9 @@ config.SETTINGS_SCHEMA_VERSION = SCHEMA_VERSION
 # Sanity checks
 ##########################################################################
 
-from pgadmin.utils import u, fs_encoding, file_quote
-setupfile = os.path.join(
-    os.path.dirname(os.path.realpath(u(__file__, fs_encoding))), u'setup.py'
-)
-exec(open(file_quote(setupfile), 'r').read())
+from pgadmin.setup import create_directory_for_app_data
+
+create_directory_for_app_data(config.SQLITE_PATH)
 
 ##########################################################################
 # Server starup
diff --git a/web/pgadmin/setup/__init__.py b/web/pgadmin/setup/__init__.py
index cdd267ad..5d8aa91d 100644
--- a/web/pgadmin/setup/__init__.py
+++ b/web/pgadmin/setup/__init__.py
@@ -10,3 +10,4 @@
 from .user_info import user_info
 from .db_version import get_version
 from .db_upgrade import db_upgrade
+from .create_directory_for_app_data import create_directory_for_app_data
diff --git a/web/pgadmin/setup/create_directory_for_app_data.py b/web/pgadmin/setup/create_directory_for_app_data.py
new file mode 100644
index 00000000..dd3a305a
--- /dev/null
+++ b/web/pgadmin/setup/create_directory_for_app_data.py
@@ -0,0 +1,12 @@
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2017, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+import os
+
+
+def create_directory_for_app_data(path):
+    if not os.path.exists(os.path.dirname(path)):
+        os.mkdir(os.path.dirname(path))
\ No newline at end of file
diff --git a/web/setup.py b/web/setup.py
index c54df94d..9004852f 100755
--- a/web/setup.py
+++ b/web/setup.py
@@ -17,7 +17,7 @@ from flask import Flask
 
 # We need to include the root directory in sys.path to ensure that we can
 # find everything we need when running in the standalone runtime.
-from pgadmin.setup import db_upgrade
+from pgadmin.setup import db_upgrade, create_directory_for_app_data
 
 root = os.path.dirname(os.path.realpath(__file__))
 if sys.path[0] != root:
@@ -37,8 +37,7 @@ if __name__ == '__main__':
     if config.TESTING_MODE:
         config.SQLITE_PATH = config.TEST_SQLITE_PATH
 
-    if not os.path.exists(os.path.dirname(config.SQLITE_PATH)):
-        os.mkdir(os.path.dirname(config.SQLITE_PATH))
+    create_directory_for_app_data(config.SQLITE_PATH)
 
     app.config['SQLALCHEMY_DATABASE_URI'] = \
         'sqlite:///' + config.SQLITE_PATH.replace('\\', '/')
-- 
2.12.0

