Patchwork [bitbake-devel,3/9] toaster: automatically enable applications

login
register
mail settings
Submitter Alexandru DAMIAN
Date July 9, 2014, 4:55 p.m.
Message ID <05b246095d161143ca2ebc126d9e70d198ab8bb8.1404924714.git.alexandru.damian@intel.com>
Download mbox | patch
Permalink /patch/75269/
State New
Headers show

Comments

Alexandru DAMIAN - July 9, 2014, 4:55 p.m.
From: Alexandru DAMIAN <alexandru.damian@intel.com>

We automatically enable local applications in INSTALLED_APPS
based on detecting a models.py or views.py file.
This allows Toaster extensibility by adding applications,
without having to edit configuration files.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 lib/toaster/toastermain/settings.py | 9 +++++++++
 1 file changed, 9 insertions(+)

Patch

diff --git a/lib/toaster/toastermain/settings.py b/lib/toaster/toastermain/settings.py
index 2ce10c4..97f2ff7 100644
--- a/lib/toaster/toastermain/settings.py
+++ b/lib/toaster/toastermain/settings.py
@@ -243,6 +243,15 @@  INSTALLED_APPS = (
     'bldcontrol',
 )
 
+# We automatically detect and install applications here if
+# they have a 'models.py' or 'views.py' file
+import os
+currentdir = os.path.dirname(__file__)
+for t in os.walk(os.path.dirname(currentdir)):
+    modulename = os.path.basename(t[0])
+    if ("views.py" in t[2] or "models.py" in t[2]) and not modulename in INSTALLED_APPS:
+        INSTALLED_APPS.append(modulename)
+
 # A sample logging configuration. The only tangible logging
 # performed by this configuration is to send an email to
 # the site admins on every HTTP 500 error when DEBUG=False.