prieto 8 роки тому
джерело
коміт
e1ef8f0d4c
1 змінених файлів з 48 додано та 35 видалено
  1. 48
    35
      progs/slim/install_model/loader.py

+ 48
- 35
progs/slim/install_model/loader.py Переглянути файл

@@ -7,6 +7,8 @@
7 7
 #
8 8
 
9 9
 import sys, os, os.path
10
+import lodel.plugins.multisite.loader.preload as preload
11
+import lodel.plugins.multisite.main as multisite
10 12
 #
11 13
 # Bootstraping
12 14
 #
@@ -24,39 +26,55 @@ except ImportError as e:
24 26
     print(e)
25 27
     exit(1)
26 28
 
27
-#Set context to MONOSITE
29
+#Set context
28 30
 from lodel.context import LodelContext
29
-LodelContext.init()
31
+LODEL2_CONTEXT_MODE = LodelContext.MULTISITE
32
+LODEL2_SITES_PATH = '.'
33
+LodelContext.init(LODEL2_CONTEXT_MODE)
30 34
 
31
-if 'LODEL2_NO_SETTINGS_LOAD' not in os.environ:
32
-    #
33
-    # Loading settings
34
-    #
35
+if LODEL2_CONTEXT_MODE == LodelContext.MULTISITE:
36
+    #Browse site's directory to set contextes
37
+    l_dir = os.listdir(LODEL2_SITES_PATH)
38
+    for entry in l_dir:
39
+        if os.path.isdir(entry):
40
+            LodelContext.from_path(entry)
41
+
42
+def global_load():
35 43
     LodelContext.expose_modules(globals(), {
36
-        'lodel.settings.settings': [('Settings', 'settings')]})
44
+    'lodel.settings.settings': [('Settings', 'settings')]})
37 45
     if not settings.started():
38 46
         settings('conf.d')
39
-    LodelContext.expose_modules(globals(), {
47
+        LodelContext.expose_modules(globals(), {
40 48
         'lodel.settings': ['Settings']})
41
-    
42
-    #Starts hooks
43
-    LodelContext.expose_modules(globals(), {
44
-        'lodel.plugin': ['LodelHook'],
45
-	'lodel.plugin.core_hooks': 'core_hooks',
46
-	'lodel.plugin.core_scripts': 'core_scripts'})
47
-
48
-def start():
49
-    #Load plugins
50
-    LodelContext.expose_modules(globals(), {
51
-        'lodel.logger': 'logger',
52
-        'lodel.plugin': ['Plugin']})
53
-    logger.debug("Loader.start() called")
54
-    Plugin.load_all()
55
-    LodelHook.call_hook('lodel2_bootstraped', '__main__', None)
49
+        #Starts hooks
50
+        LodelContext.expose_modules(globals(), {
51
+            'lodel.plugin': ['LodelHook'],
52
+            'lodel.plugin.core_hooks': 'core_hooks',
53
+            'lodel.plugin.core_scripts': 'core_scripts'})
56 54
 
55
+if 'LODEL2_NO_SETTINGS_LOAD' not in os.environ:
56
+    #
57
+    # Loading settings
58
+    #
59
+    if LODEL2_CONTEXT_MODE == LodelContext.MULTISITE:
60
+        #for ctx in LodelContext._contexts:
61
+        #   LodelContext.set(ctx)
62
+        #   global_load()
63
+    else:
64
+        global_load()
57 65
 
66
+def load_loop(lodel):
67
+    import leapi_dyncode as dyncode
68
+    lodel.dyncode = dyncode
69
+    LodelHook.call_hook('lodel2_dyncode_bootstraped', '__main__', None)
70
+    #Run interative python
71
+    import code
72
+    print("""
73
+     Running interactive python in Lodel2 %s instance environment
74
+    """%Settings.sitename)
75
+    code.interact(local=locals())
76
+    
58 77
 if __name__ == '__main__':
59
-
60 78
     start()
61 79
     if Settings.runtest:
62 80
         import unittest
@@ -70,16 +88,11 @@ if __name__ == '__main__':
70 88
         runner.run(suite)
71 89
         exit()
72 90
 
73
-    lodel = LodelContext.get()
74
-    import leapi_dyncode as dyncode
75
-    lodel.dyncode = dyncode
76
-    LodelHook.call_hook('lodel2_dyncode_bootstraped', '__main__', None)
77
-    LodelHook.call_hook('lodel2_loader_main', '__main__', None)
91
+    if LODEL2_CONTEXT_MODE == LodelContext.MULTISITE:
92
+        preload.preload()
93
+    else:
94
+        lodel = LodelContext.get()
95
+        load_loop(lodel)
78 96
 
79
-    #Run interative python
80
-    import code
81
-    print("""
82
-     Running interactive python in Lodel2 %s instance environment
97
+    multisite.main_loop()
83 98
 
84
-"""%Settings.sitename)
85
-    code.interact(local=locals())

Loading…
Відмінити
Зберегти