gina 0.1.1-alpha.99 → 0.1.2-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +1 -1
  2. package/README-4Contributors.md +30 -0
  3. package/README.md +125 -39
  4. package/bin/cli +130 -41
  5. package/bin/cli-debug +46 -15
  6. package/bin/cmd +63 -41
  7. package/bin/gina +57 -49
  8. package/framework/{v0.1.1-alpha.99/lib/inherits → v0.1.2-alpha.2}/LICENSE +1 -1
  9. package/framework/v0.1.2-alpha.2/VERSION +1 -0
  10. package/framework/{v0.1.1-alpha.99/core/asset/js/plugin/readme.md → v0.1.2-alpha.2/core/asset/plugin/README.md} +34 -12
  11. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  12. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  13. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html +251 -0
  14. package/framework/{v0.1.1-alpha.99/core/asset/js/plugin/dist → v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js}/gina.js +4588 -3416
  15. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +765 -0
  16. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  17. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +7 -0
  18. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  19. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/config.js +315 -131
  20. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/index.js +460 -274
  21. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/connector.js +22 -0
  22. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/connector.v2.js +51 -51
  23. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/connector.v3.js +51 -51
  24. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/connector.v4.js +384 -0
  25. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/n1ql.js +3 -2
  26. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/session-store.js +22 -0
  27. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/session-store.v3.js +12 -12
  28. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/session-store.v4.js +361 -0
  29. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/controller/controller.js +1351 -902
  30. package/framework/v0.1.2-alpha.2/core/controller/index.js +23 -0
  31. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/index.js +1 -1
  32. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/class.js +1 -1
  33. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/factory.js +2 -2
  34. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/gna.js +48 -24
  35. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/README.md +5 -0
  36. package/framework/v0.1.2-alpha.2/core/locales/dist/region/en.json +5727 -0
  37. package/framework/v0.1.2-alpha.2/core/locales/dist/region/fr.json +11452 -0
  38. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/index.js +2 -2
  39. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/make.js +39 -41
  40. package/framework/v0.1.2-alpha.2/core/locales/src/resources/region.mapping.json +43 -0
  41. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/entity.js +87 -67
  42. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/index.js +16 -16
  43. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/template/entityFactory.js +1 -1
  44. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/template/index.js +17 -15
  45. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/index.js +1 -1
  46. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/package.json +1 -1
  47. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/package.json +1 -1
  48. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/src/main.js +5 -5
  49. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/package.json +1 -1
  50. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/src/main.js +6 -5
  51. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/package.json +1 -1
  52. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/src/form-validator.js +404 -300
  53. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/src/main.js +1384 -1314
  54. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/router.js +221 -122
  55. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.express.js +69 -65
  56. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.isaac.js +274 -180
  57. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.js +710 -615
  58. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle/config/settings.json +12 -0
  59. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/settings.server.json +4 -4
  60. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/templates.json +4 -4
  61. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/controllers/controller.content.js +1 -1
  62. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  63. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/index.js +13 -1
  64. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
  65. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
  66. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
  67. package/framework/{v0.1.1-alpha.99/core/template/boilerplate/bundle_templates/html/layout → v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
  68. package/framework/v0.1.2-alpha.2/core/template/command/gina.bat.tpl +8 -0
  69. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/command/gina.tpl +4 -4
  70. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/env.json +12 -0
  71. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/manifest.json +2 -0
  72. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/package.json +2 -2
  73. package/framework/v0.1.2-alpha.2/core/template/conf/statics.json +12 -0
  74. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/templates.json +9 -9
  75. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/console.js +3 -3
  76. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/context.js +233 -75
  77. package/framework/v0.1.2-alpha.2/helpers/data/LICENSE +9 -0
  78. package/framework/v0.1.2-alpha.2/helpers/data/README.md +12 -0
  79. package/framework/v0.1.2-alpha.2/helpers/data/package.json +20 -0
  80. package/framework/v0.1.2-alpha.2/helpers/data/src/main.js +295 -0
  81. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/dateFormat.js +9 -7
  82. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/index.js +13 -8
  83. package/framework/v0.1.2-alpha.2/helpers/json/LICENSE +9 -0
  84. package/framework/v0.1.2-alpha.2/helpers/json/README.md +12 -0
  85. package/framework/{v0.1.1-alpha.99/helpers/plugins → v0.1.2-alpha.2/helpers/json}/package.json +2 -2
  86. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/json/src/main.js +33 -28
  87. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/path.js +97 -22
  88. package/framework/{v0.1.1-alpha.99/helpers/json → v0.1.2-alpha.2/helpers/plugins}/package.json +2 -2
  89. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/src/api-error.js +23 -23
  90. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/src/main.js +3 -3
  91. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/prototypes.js +46 -38
  92. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/text.js +2 -2
  93. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/package.json +1 -1
  94. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/src/dep/jszip.min.js +3 -3
  95. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/src/main.js +183 -168
  96. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/aliases.json +4 -1
  97. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/add.js +84 -28
  98. package/framework/v0.1.2-alpha.2/lib/cmd/bundle/arguments.json +8 -0
  99. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/help.txt +4 -2
  100. package/framework/v0.1.2-alpha.2/lib/cmd/bundle/list.js +175 -0
  101. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/remove.js +39 -27
  102. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/restart.js +14 -8
  103. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/start.js +283 -49
  104. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/stop.js +93 -74
  105. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/add.js +87 -49
  106. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/list.js +26 -4
  107. package/framework/{v0.1.1-alpha.99/lib/cmd/scope → v0.1.2-alpha.2/lib/cmd/env}/remove.js +29 -24
  108. package/framework/v0.1.2-alpha.2/lib/cmd/env/use.js +106 -0
  109. package/framework/v0.1.2-alpha.2/lib/cmd/framework/build.js +93 -0
  110. package/framework/v0.1.2-alpha.2/lib/cmd/framework/init.js +932 -0
  111. package/framework/v0.1.2-alpha.2/lib/cmd/framework/link-node-modules.js +123 -0
  112. package/framework/v0.1.2-alpha.2/lib/cmd/framework/link.js +137 -0
  113. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/open.js +25 -1
  114. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/restart.js +78 -26
  115. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/set.js +120 -40
  116. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/start.js +49 -20
  117. package/framework/v0.1.2-alpha.2/lib/cmd/framework/status.js +144 -0
  118. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/stop.js +64 -31
  119. package/framework/v0.1.2-alpha.2/lib/cmd/framework/tail.js +303 -0
  120. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/version.js +19 -4
  121. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/helper.js +357 -53
  122. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/index.js +23 -23
  123. package/framework/v0.1.2-alpha.2/lib/cmd/port/inc/scan.js +142 -0
  124. package/framework/v0.1.2-alpha.2/lib/cmd/port/list.js +464 -0
  125. package/framework/v0.1.2-alpha.2/lib/cmd/port/reset.js +417 -0
  126. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/add.js +344 -157
  127. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/arguments.json +2 -1
  128. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/build.js +28 -28
  129. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/help.txt +7 -1
  130. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/list.js +22 -2
  131. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/remove.js +19 -17
  132. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/rename.js +11 -11
  133. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/set.js +260 -211
  134. package/framework/v0.1.2-alpha.2/lib/cmd/scope/add.js +129 -0
  135. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/help.txt +4 -4
  136. package/framework/{v0.1.1-alpha.99/lib/cmd/env/use.js → v0.1.2-alpha.2/lib/cmd/scope/link-production.js} +22 -21
  137. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/list.js +34 -11
  138. package/framework/v0.1.2-alpha.2/lib/cmd/scope/remove.js +122 -0
  139. package/framework/v0.1.2-alpha.2/lib/cmd/scope/use.js +68 -0
  140. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/view/add.js +35 -10
  141. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/package.json +1 -1
  142. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/src/main.js +247 -244
  143. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/config.js +33 -31
  144. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/package.json +1 -1
  145. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/src/main.js +16 -11
  146. package/framework/v0.1.2-alpha.2/lib/domain/LICENSE +9 -0
  147. package/framework/v0.1.2-alpha.2/lib/domain/README.md +46 -0
  148. package/framework/v0.1.2-alpha.2/lib/domain/dist/public_suffix_list.dat +14186 -0
  149. package/framework/v0.1.2-alpha.2/lib/domain/package.json +20 -0
  150. package/framework/v0.1.2-alpha.2/lib/domain/src/main.js +442 -0
  151. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/generator/index.js +5 -5
  152. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/index.js +3 -2
  153. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2/lib/inherits}/LICENSE +1 -1
  154. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/README.md +2 -2
  155. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/package.json +3 -4
  156. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/src/main.js +3 -3
  157. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/package.json +2 -2
  158. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/default/index.js +15 -2
  159. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/index.js +109 -14
  160. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/index.js +12 -3
  161. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/listener.js +29 -21
  162. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/speaker.js +33 -4
  163. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/helper.js +22 -1
  164. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/main.js +36 -9
  165. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/math/index.js +9 -9
  166. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/README.md +2 -2
  167. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/package.json +1 -1
  168. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/src/main.js +118 -91
  169. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/model.js +10 -10
  170. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/proc.js +92 -49
  171. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/package.json +1 -1
  172. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/src/main.js +377 -420
  173. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/session-store.js +13 -7
  174. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/shell.js +3 -3
  175. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/swig-filters/package.json +1 -1
  176. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/swig-filters/src/main.js +140 -119
  177. package/framework/v0.1.2-alpha.2/lib/url/README.md +0 -0
  178. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/validator.js +2 -2
  179. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/package.json +1 -1
  180. package/package.json +10 -10
  181. package/resources/home/main.json +39 -5
  182. package/resources/home/settings.json +8 -0
  183. package/resources/package.json.template +1 -1
  184. package/script/lib.js +0 -0
  185. package/script/post_install.js +179 -89
  186. package/script/pre_install.js +95 -12
  187. package/services/.gna/67fdf1b224a2ed5597e63d4b64283834468e05e3.txt +0 -0
  188. package/services/.gna/arch +1 -0
  189. package/services/.gna/locals.json +14 -0
  190. package/services/.gna/platform +1 -0
  191. package/services/configure +6 -0
  192. package/services/env.json +18 -0
  193. package/services/manifest.json +30 -0
  194. package/services/package.json +11 -0
  195. package/services/src/proxy/config/app.json +6 -0
  196. package/services/src/proxy/config/routing.json +11 -0
  197. package/services/src/proxy/config/settings.json +9 -0
  198. package/services/src/proxy/config/settings.server.json +31 -0
  199. package/services/src/proxy/config/statics.json +3 -0
  200. package/services/src/proxy/controllers/controller.content.js +58 -0
  201. package/services/src/proxy/controllers/controller.js +30 -0
  202. package/{framework/v0.1.1-alpha.99/core/template/boilerplate/bundle → services/src/proxy}/controllers/setup.js +14 -14
  203. package/services/src/proxy/index.js +31 -0
  204. package/services/src/proxy/lib/domain/README.md +48 -0
  205. package/services/src/proxy/lib/domain/src/config/public_suffix_list.dat +14186 -0
  206. package/services/src/toolbar/config/app.json +6 -0
  207. package/services/src/toolbar/config/routing.json +11 -0
  208. package/{framework/v0.1.1-alpha.99/core/template/boilerplate/bundle → services/src/toolbar}/config/settings.json +0 -0
  209. package/services/src/toolbar/config/settings.server.json +30 -0
  210. package/services/src/toolbar/controllers/controller.content.js +39 -0
  211. package/services/src/toolbar/controllers/controller.js +30 -0
  212. package/services/src/toolbar/controllers/setup.js +111 -0
  213. package/services/src/toolbar/index.js +43 -0
  214. package/utils/helper.js +25 -156
  215. package/utils/prototypes.js +9 -9
  216. package/utils/prototypes.json_clone.js +70 -37
  217. package/framework/v0.1.1-alpha.99/VERSION +0 -1
  218. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.js.map +0 -56
  219. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.css +0 -1
  220. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.css.map +0 -1
  221. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.js +0 -736
  222. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.js.map +0 -56
  223. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.onload.min.js +0 -5
  224. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -8
  225. package/framework/v0.1.1-alpha.99/core/connectors/couchbase/lib/connector.js +0 -20
  226. package/framework/v0.1.1-alpha.99/core/connectors/couchbase/lib/session-store.js +0 -21
  227. package/framework/v0.1.1-alpha.99/core/controller/index.js +0 -27
  228. package/framework/v0.1.1-alpha.99/core/locales/dist/region/en.json +0 -9492
  229. package/framework/v0.1.1-alpha.99/core/locales/dist/region/fr.json +0 -9492
  230. package/framework/v0.1.1-alpha.99/core/locales/src/resources/region.mapping.json +0 -28
  231. package/framework/v0.1.1-alpha.99/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
  232. package/framework/v0.1.1-alpha.99/core/template/conf/statics.json +0 -10
  233. package/framework/v0.1.1-alpha.99/lib/cmd/bundle/arguments.json +0 -4
  234. package/framework/v0.1.1-alpha.99/lib/cmd/bundle/list.js +0 -129
  235. package/framework/v0.1.1-alpha.99/lib/cmd/env/remove.js +0 -150
  236. package/framework/v0.1.1-alpha.99/lib/cmd/framework/init.js +0 -541
  237. package/framework/v0.1.1-alpha.99/lib/cmd/framework/status.js +0 -72
  238. package/framework/v0.1.1-alpha.99/lib/cmd/framework/tail.js +0 -184
  239. package/framework/v0.1.1-alpha.99/lib/cmd/port/inc/scan.js +0 -108
  240. package/framework/v0.1.1-alpha.99/lib/cmd/port/list.js +0 -176
  241. package/framework/v0.1.1-alpha.99/lib/cmd/scope/set.js +0 -57
  242. package/framework/v0.1.1-alpha.99/lib/cmd/scope/unset.js +0 -44
  243. package/framework/v0.1.1-alpha.99/lib/cmd/scope/use.js +0 -79
  244. package/script/post_publish.js +0 -185
  245. package/script/prepare_version.js +0 -552
  246. /package/{framework/v0.1.1-alpha.99/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
  247. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/AUTHORS +0 -0
  248. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/html/nolayout.html +0 -0
  249. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/html/static.html +0 -0
  250. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/android-chrome-192x192.png +0 -0
  251. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/android-chrome-512x512.png +0 -0
  252. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/apple-touch-icon.png +0 -0
  253. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon-16x16.png +0 -0
  254. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon-32x32.png +0 -0
  255. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon.ico +0 -0
  256. /package/framework/{v0.1.1-alpha.99/core/asset/js → v0.1.2-alpha.2/core/asset}/plugin/uuid.json +0 -0
  257. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  258. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/controller/controller.framework.js +0 -0
  259. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/.travis.yml +0 -0
  260. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/LICENSE +0 -0
  261. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/README.md +0 -0
  262. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
  263. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/deps/encoding/encoding.js +0 -0
  264. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/main.js +0 -0
  265. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/types/multipart.js +0 -0
  266. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/types/urlencoded.js +0 -0
  267. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/utils.js +0 -0
  268. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/package.json +0 -0
  269. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  270. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/tools.js +0 -0
  271. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/currency.json +0 -0
  272. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/dist/language/en.json +0 -0
  273. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/dist/language/fr.json +0 -0
  274. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/resources/currency.csv +0 -0
  275. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/resources/region.csv +0 -0
  276. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/mime.types +0 -0
  277. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/README.md +0 -0
  278. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/README.md +0 -0
  279. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/build.json +0 -0
  280. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/README.md +0 -0
  281. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/build.json +0 -0
  282. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/README.md +0 -0
  283. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/build.json +0 -0
  284. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/README.md +0 -0
  285. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/build.json +0 -0
  286. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/status.codes +0 -0
  287. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  288. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  289. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  290. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  291. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  292. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  293. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  294. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  295. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  296. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  297. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/settings.json +0 -0
  298. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/401.json +0 -0
  299. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/403.json +0 -0
  300. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/404.json +0 -0
  301. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/html/50x.html +0 -0
  302. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/json/500.json +0 -0
  303. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/json/503.json +0 -0
  304. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/extensions/logger/config.json +0 -0
  305. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/README.md +0 -0
  306. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/task.js +0 -0
  307. /package/framework/{v0.1.1-alpha.99/helpers/json → v0.1.2-alpha.2/lib/archiver}/README.md +0 -0
  308. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/build.json +0 -0
  309. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/copy.js +0 -0
  310. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/cp.js +0 -0
  311. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/help.js +0 -0
  312. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/rename.js +0 -0
  313. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/rm.js +0 -0
  314. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/status.js +0 -0
  315. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/get.js +0 -0
  316. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/help.js +0 -0
  317. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/help.txt +0 -0
  318. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/link-dev.js +0 -0
  319. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/rm.js +0 -0
  320. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/set.js +0 -0
  321. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/unset.js +0 -0
  322. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/dot.js +0 -0
  323. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/get.js +0 -0
  324. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/help.js +0 -0
  325. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/help.txt +0 -0
  326. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/msg.json +0 -0
  327. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/update.js +0 -0
  328. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina-dev.1.md +0 -0
  329. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina-framework.1.md +0 -0
  330. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina.1.md +0 -0
  331. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/msg.json +0 -0
  332. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/help.js +0 -0
  333. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/help.txt +0 -0
  334. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/set.js +0 -0
  335. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/help.js +0 -0
  336. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/restart.js +0 -0
  339. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/rm.js +0 -0
  340. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/start.js +0 -0
  341. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/status.js +0 -0
  342. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/stop.js +0 -0
  343. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/help.js +0 -0
  344. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/help.txt +0 -0
  345. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/list.js +0 -0
  346. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/help.js +0 -0
  347. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/link-local.js +0 -0
  348. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/rm.js +0 -0
  349. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/README.md +0 -0
  350. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/build.json +0 -0
  351. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/README.md +0 -0
  352. /package/framework/{v0.1.1-alpha.99/lib/archiver/README.md → v0.1.2-alpha.2/lib/domain/exemples/backend.js} +0 -0
  353. /package/framework/{v0.1.1-alpha.99/lib/routing/README.md → v0.1.2-alpha.2/lib/domain/exemples/frontend.html} +0 -0
  354. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  355. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/protected_inheritance.js +0 -0
  356. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/simple_inheritance.js +0 -0
  357. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  358. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/README.md +0 -0
  359. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  360. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  361. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge.js +0 -0
  362. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge_2_literal objects.js +0 -0
  363. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge_and_preserve_first.js +0 -0
  364. /package/framework/{v0.1.1-alpha.99/lib/swig-filters → v0.1.2-alpha.2/lib/routing}/README.md +0 -0
  365. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/build.json +0 -0
  366. /package/framework/{v0.1.1-alpha.99/lib/url → v0.1.2-alpha.2/lib/swig-filters}/README.md +0 -0
  367. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/index.js +0 -0
  368. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/mocks.json +0 -0
  369. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/routing.json +0 -0
  370. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/test.js +0 -0
@@ -0,0 +1,932 @@
1
+ var fs = require('fs');
2
+ var EventEmitter = require('events').EventEmitter;
3
+ var e = new EventEmitter();
4
+ const { execSync } = require('child_process');
5
+ const { arch } = require('os');
6
+ var util = require('util');
7
+ var promisify = util.promisify;
8
+
9
+ var console = lib.logger;
10
+ var Domain = lib.Domain;
11
+ var ginaPath = getPath('gina').root;
12
+ var help = require(ginaPath + '/utils/helper');
13
+ // var helpers = require(getPath('gina').helpers, true);
14
+
15
+
16
+ var aliases = require( getPath('gina').lib + '/cmd/aliases.json' );
17
+
18
+ function Initialize(opt) {
19
+
20
+ var self = {}, local = {};
21
+ var init = function(opt) {
22
+ self.opt = opt;
23
+ begin()
24
+ }
25
+
26
+
27
+ /**
28
+ * Bebin Checking - Will run checking tasks in order of declaration
29
+ * */
30
+ // var begin = function() {
31
+ // var i = 0;
32
+ // var funcs = [];
33
+ // for (var t in self) {
34
+ // if( typeof(self[t]) == 'function') {
35
+ // var func = 'self.' + t + '()';
36
+ // console.debug('Running [ ' + func + ' ]');
37
+ // eval(func);// jshint ignore:line
38
+ // ++i
39
+ // }
40
+
41
+ // if ( i == self.functionCount() ) {
42
+ // e.emit('init#complete', false, run, self.opt);
43
+ // break
44
+ // }
45
+ // }
46
+ // }
47
+
48
+ var begin = async function(i) {
49
+ i = (typeof(i) == 'undefined') ? 0 : i;
50
+ //console.debug('i is ', i);
51
+ var n = 0, funct = null, functName = null;
52
+ for (let t in self) {
53
+ if ( typeof(self[t]) == 'function') {
54
+ if (n == i) {
55
+ //let func = 'self.' + t + '()';
56
+ let func = 'self.' + t;
57
+ console.debug('Running [ ' + func + '() ]');
58
+ funct = func;
59
+ functName = t;
60
+ break;
61
+ }
62
+ n++;
63
+ }
64
+ }
65
+
66
+ // to handle sync vs async to allow execution in order of declaration
67
+ if (funct) {
68
+ eval('async function on'+functName+'(){ await promisify('+ funct + ')().catch(function(e){ console.error(e.toString()); process.exit(1);}).then(function(){ begin('+(i+1)+')});}; on'+functName+'();'); // jshint ignore:line
69
+ } else if ( i == self.functionCount() ) {
70
+ e.emit('init#complete', false, run, self.opt);
71
+ }
72
+ }
73
+
74
+
75
+ var checkForAliases = function(task) {
76
+ try {
77
+ // var aliasArr = aliases[task.topic].toArray();
78
+ var aliasObj = aliases[task.topic];
79
+ if (
80
+ typeof(aliases) != 'undefined'
81
+ && typeof(aliasObj) != 'undefined'
82
+ && typeof(aliasObj[task.action]) != 'undefined'
83
+ ) {
84
+ task.action = aliasObj[task.action]
85
+ }
86
+ } catch (err) {}
87
+
88
+ return task
89
+ }
90
+
91
+ var run = function(opt, cmd) {
92
+ opt.task = checkForAliases(opt.task);
93
+ var filename ='/cmd/' + opt.task.topic + '/' + opt.task.action + '.js'
94
+ var path = getPath('gina').lib + filename;
95
+
96
+ try {
97
+ if ( GINA_ENV_IS_DEV || process.env.NODE_ENV_IS_DEV ) {
98
+ delete require.cache[require.resolve(path)];
99
+ }
100
+ require(path)(opt, cmd)
101
+ } catch(err) {
102
+ console.crit('Gina has some troubles with command [ ', process.argv.join(' ') + ' ]\n' + err.stack);
103
+ if (opt.client) {
104
+ opt.client.write('Gina has some troubles with command [ ', process.argv.join(' ') + ' ]\n' + err.stack);
105
+ }
106
+ process.exit(1);
107
+ }
108
+ }
109
+
110
+ self.checkIfHome = function(done) {
111
+ var path = self.opt.homedir;
112
+ console.debug('Checking home... [ '+ path +' ]');
113
+
114
+ if ( !getEnvVar('GINA_HOMEDIR') ) {
115
+ setEnvVar('GINA_HOMEDIR', path)
116
+ } else {
117
+ path = self.opt.homedir = getEnvVar('GINA_HOMEDIR')
118
+ }
119
+
120
+ if ( !fs.existsSync(path) ) {
121
+ try {
122
+ fs.mkdirSync(path, 0775)
123
+ } catch (err) {
124
+ // console.error(err.stack);
125
+ // process.exit(1)
126
+ return done(err)
127
+ }
128
+ }
129
+
130
+ done()
131
+ }
132
+
133
+
134
+ self.checkIfVersionDir = function(done) {
135
+
136
+ var version = require(self.opt.pack).version;
137
+
138
+ if ( !getEnvVar('GINA_VERSION') ) {
139
+ setEnvVar('GINA_VERSION', version)
140
+ } else {
141
+ version = getEnvVar('GINA_VERSION')
142
+ }
143
+
144
+ if ( !getEnvVar('GINA_SHORT_VERSION') ) {
145
+ var shortVersion = version.split('.');
146
+ shortVersion.splice(2);
147
+ shortVersion = shortVersion.join('.');
148
+ setEnvVar('GINA_SHORT_VERSION', shortVersion);
149
+ }
150
+
151
+
152
+ var release = version.split('.').splice(0,2).join(".");
153
+ setEnvVar('GINA_RELEASE', release, true);
154
+ var releasePath = self.opt.homedir + '/' + release;
155
+ self.release = self.opt.release = release;
156
+
157
+ console.debug('Checking version path... [ '+ releasePath +' ]');
158
+
159
+ if ( !fs.existsSync(releasePath) ) {
160
+ try {
161
+ fs.mkdirSync(releasePath, 0775)
162
+ } catch (err) {
163
+ // console.error(err.stack);
164
+ // process.exit(1)
165
+ return done(err)
166
+ }
167
+ }
168
+ done()
169
+ }
170
+
171
+ self.checkIfMiddlewareFile = function(done) {
172
+ var middlewareFileObj = new _( opt.frameworkPath + '/MIDDLEWARE');
173
+ console.debug('Checking for: '+ middlewareFileObj.toString());
174
+ if ( !middlewareFileObj.existsSync() ) {
175
+ console.debug('Did not find '+ middlewareFileObj.toString());
176
+ }
177
+ done()
178
+ }
179
+
180
+ self.checkIfMain = function(done) {
181
+ console.debug('Checking main...');
182
+ var source = getPath('gina').root + '/resources/home/main.json';
183
+ var target = self.opt.homedir + '/main.json';
184
+ var version = 'v' + getEnvVar('GINA_VERSION');
185
+ var prefix = getEnvVar('GINA_PREFIX') || execSync('npm config get prefix').toString().replace(/\n$/g, '');
186
+ var globalMode = getEnvVar('GINA_GLOBAL_MODE');
187
+
188
+ var data = require(source);
189
+ var dic = {
190
+ 'release' : self.release,
191
+ 'version' : version,
192
+ 'prefix' : prefix,
193
+ 'global_mode': globalMode
194
+ };
195
+ data = whisper(dic, data);
196
+
197
+
198
+ if ( !fs.existsSync(target) ) {
199
+ try {
200
+ lib.generator.createFileFromDataSync(data, target)
201
+ } catch (err) {
202
+ // console.error(err.stack);
203
+ // process.exit(1)
204
+ return done(err)
205
+ }
206
+ }
207
+ // update if needed : like the version number ...
208
+ var mainConfig = require(target);
209
+ mainConfig = whisper(dic, mainConfig);
210
+
211
+ // check if new definitions after update
212
+ for (let k in data) {
213
+ if ( typeof(mainConfig[k]) == 'undefined' ) {
214
+ mainConfig[k] = ( typeof(data[k]) == 'object' ) ? JSON.clone(data[k]) : data[k];
215
+ }
216
+ }
217
+ // arch
218
+ mainConfig.archs = merge(mainConfig.archs, data.archs, true);
219
+ // envs
220
+ mainConfig.envs = merge(mainConfig.envs, data.envs, true);
221
+ // scopes
222
+ mainConfig.scopes = merge(mainConfig.scopes, data.scopes, true);
223
+
224
+ // updating protocols, schemes, cultures, log_levels
225
+ mainConfig.protocols = merge(mainConfig.protocols, data.protocols, true);
226
+ mainConfig.schemes = merge(mainConfig.schemes, data.schemes, true);
227
+ mainConfig.cultures = merge(mainConfig.cultures||{}, data.cultures, true);
228
+ mainConfig.log_levels = merge(mainConfig.log_levels||{}, data.log_levels, true);
229
+
230
+
231
+ // don't remove def_protocol
232
+ var defProtocol = (mainConfig['def_protocol']) ? mainConfig['def_protocol'][self.release] : data.def_protocol[self.release];
233
+ var defScheme = (mainConfig['def_scheme']) ? mainConfig['def_scheme'][self.release] : data.def_scheme[self.release];
234
+ var defCulture = (mainConfig['def_culture']) ? mainConfig['def_culture'][self.release] : data.def_culture[self.release];
235
+ var defTimezone = (mainConfig['def_timezone']) ? mainConfig['def_timezone'][self.release] : data.def_timezone[self.release];
236
+ var defLogLevel = (mainConfig['def_log_level']) ? mainConfig['def_log_level'][self.release] : data.def_log_level[self.release];
237
+ var defPrefix = (mainConfig['def_prefix']) ? mainConfig['def_prefix'][self.release] : data.def_prefix[self.release];
238
+ var defGlobalMode = (mainConfig['def_global_mode']) ? mainConfig['def_global_mode'][self.release] : data.def_global_mode[self.release];
239
+
240
+
241
+ if ( mainConfig.protocols[self.release].indexOf(defProtocol) < 0 )
242
+ mainConfig.protocols[self.release].push(defProtocol);
243
+
244
+ if ( mainConfig.schemes[self.release].indexOf(defScheme) < 0 )
245
+ mainConfig.schemes[self.release].push(defScheme);
246
+
247
+ if ( mainConfig.cultures[self.release].indexOf(defCulture) < 0 )
248
+ mainConfig.cultures[self.release].push(defCulture);
249
+
250
+
251
+ // Update only when needed
252
+ if (!mainConfig.def_culture)
253
+ mainConfig.def_culture = data.def_culture;
254
+
255
+ if (!mainConfig.def_timezone)
256
+ mainConfig.def_timezone = data.def_timezone;
257
+
258
+ if (!mainConfig.def_log_level)
259
+ mainConfig.def_log_level = data.def_log_level;
260
+
261
+ if (!mainConfig.def_prefix)
262
+ mainConfig.def_prefix = data.def_prefix;
263
+
264
+ if (!mainConfig.def_global_mode)
265
+ mainConfig.def_global_mode = data.def_global_mode;
266
+
267
+ mainConfig.protocols[self.release].sort();
268
+ mainConfig.schemes[self.release].sort();
269
+ mainConfig.cultures[self.release].sort();
270
+
271
+ // commit
272
+ lib.generator.createFileFromDataSync(mainConfig, target);
273
+
274
+ process.env.TZ = defTimezone;
275
+ process.env.LOG_LEVEL = defLogLevel;
276
+
277
+ setEnvVar('GINA_CULTURES', mainConfig.cultures[self.release]);
278
+ setEnvVar('GINA_CULTURE', defCulture);
279
+ setEnvVar('GINA_TIMEZONE', defTimezone);
280
+ // Attenion: remove this part in case of troubles
281
+ setEnvVar('GINA_PREFIX', defPrefix);
282
+ setEnvVar('GINA_GLOBAL_MODE', defGlobalMode);
283
+
284
+ done()
285
+ }
286
+
287
+ /**
288
+ * Check arch
289
+ *
290
+ * */
291
+ self.checkArch = function(done) {
292
+
293
+ var currentArch = process.arch;
294
+ var currentPlatform = process.platform;
295
+ // ignored for framework:set
296
+ var mainConfig = require( self.opt.homedir + '/main.json' );
297
+ var defaultMainConfig = requireJSON( getPath('gina').root + '/resources/home/main.json' );
298
+ //has registered arch ?
299
+ var arch = getEnvVar('GINA_ARCH') || mainConfig['def_arch'][self.release] || null; // arch by default
300
+ if ( typeof(mainConfig.archs) == 'undefined' ) {
301
+ mainConfig.archs = {};
302
+ mainConfig.archs[self.release] = defaultMainConfig.archs['{release}'];
303
+ mainConfig['def_arch'] = {}
304
+ mainConfig['def_arch'][self.release] = currentArch;
305
+ isUpdateNeeded = true;
306
+ }
307
+ if ( mainConfig.archs[self.release].indexOf(arch) < 0 ) {
308
+ console.error('Arch [ ' + arch + ' ] not registered. Gina is not support your architecture `'+ process.arch +'` at this moment.');
309
+ process.exit(1);
310
+ }
311
+ var platform = getEnvVar('GINA_PLATFORM') || mainConfig['def_platform'][self.release] || null; // arch by default
312
+ if ( typeof(mainConfig.platforms) == 'undefined' ) {
313
+ mainConfig.platforms = {};
314
+ mainConfig.platforms[self.release] = defaultMainConfig.platforms['{release}'];
315
+ mainConfig['def_platform'] = {}
316
+ mainConfig['def_platform'][self.release] = currentPlatform;
317
+ isUpdateNeeded = true;
318
+ }
319
+ if ( mainConfig.platforms[self.release].indexOf(platform) < 0 ) {
320
+ console.error('Platform [ ' + platform + ' ] not registered. Gina is not support your platform `'+ process.platform +'` at this moment.');
321
+ process.exit(1);
322
+ }
323
+ var isUpdateNeeded = false;
324
+ if (arch != currentArch) {
325
+ // updating arch
326
+ arch = currentArch;
327
+ if ( mainConfig.archs[self.release].indexOf(arch) < 0 ) {
328
+ console.error('Arch [ ' + arch + ' ] not registered. Gina is not support your architecture `'+ process.arch +'` at this moment.');
329
+ process.exit(1);
330
+ }
331
+
332
+ isUpdateNeeded = true;
333
+ mainConfig['def_arch'][self.release] = arch;
334
+ }
335
+ if (platform != currentPlatform) {
336
+ // updating platform
337
+ platform = currentPlatform;
338
+ if ( mainConfig.platforms[self.release].indexOf(platform) < 0 ) {
339
+ console.error('Platform [ ' + arch + ' ] not registered. Gina is not support your platform `'+ process.platform +'` at this moment.');
340
+ process.exit(1);
341
+ }
342
+
343
+ isUpdateNeeded = true;
344
+ mainConfig['def_platform'][self.release] = platform;
345
+ }
346
+
347
+
348
+ // has arch & platform ?
349
+ if (
350
+ isUpdateNeeded
351
+ ||
352
+ typeof(mainConfig['def_arch']) == 'undefined'
353
+ ||
354
+ typeof(mainConfig['def_platform']) == 'undefined'
355
+ ||
356
+ typeof(mainConfig['def_arch']) != 'undefined'
357
+ && typeof(mainConfig['def_arch'][self.release]) != 'undefined'
358
+ && mainConfig.archs[self.release].indexOf(mainConfig['def_arch'][self.release]) < 0
359
+ ||
360
+ typeof(mainConfig['def_platform']) != 'undefined'
361
+ && typeof(mainConfig['def_platform'][self.release]) != 'undefined'
362
+ && mainConfig.platforms[self.release].indexOf(mainConfig['def_platform'][self.release]) < 0
363
+ ) {
364
+ var target = _(self.opt.homedir +'/main.json');
365
+ lib.generator.createFileFromDataSync(
366
+ mainConfig,
367
+ target
368
+ )
369
+ }
370
+
371
+ // TODO - Scanning project
372
+
373
+ done()
374
+ }
375
+
376
+ /**
377
+ * Checking ports
378
+ *
379
+ **/
380
+ self.checkIfPorts = function(done) {
381
+ console.debug('Checking ports...');
382
+ var mainConfig = require(self.opt.homedir + '/main.json');
383
+ var target = _(self.opt.homedir +'/ports.json');
384
+
385
+ if ( !fs.existsSync(target)) {
386
+
387
+ var protocols = mainConfig.protocols[self.release]
388
+ , schemes = mainConfig.schemes[self.release]
389
+ , ports = {};
390
+
391
+ for (let p = 0, pLen = protocols.length; p < pLen; ++p) {
392
+ ports[protocols[p]] = {};
393
+ for (let s = 0, sLen = schemes.length; s < sLen; ++s) {
394
+ ports[protocols[p]][schemes[s]] = {}
395
+ }
396
+ }
397
+ lib.generator.createFileFromDataSync(
398
+ ports,
399
+ target
400
+ )
401
+ }
402
+
403
+ done()
404
+ }
405
+
406
+ /**
407
+ * Checking ports.reverse
408
+ *
409
+ **/
410
+ self.checkIfPortsReverse = function(done) {
411
+ console.debug('Checking ports.reverse...');
412
+ var target = _(self.opt.homedir +'/ports.reverse.json');
413
+
414
+ if ( !fs.existsSync(target) ) {
415
+ lib.generator.createFileFromDataSync(
416
+ {},
417
+ target
418
+ )
419
+ }
420
+
421
+ done()
422
+ }
423
+
424
+
425
+
426
+
427
+ /**
428
+ * Checking settings, defining constants
429
+ * Also done during bin/cmd::init() ... so if you change here ...
430
+ **/
431
+
432
+ self.checkIfSettings = function(done) {
433
+ console.debug('Checking framework settings...');
434
+ var main = require( _(self.opt.homedir + '/main.json', true) )
435
+ , version = getEnvVar('GINA_VERSION')
436
+ , prefix = getEnvVar('GINA_PREFIX') || main['def_prefix'][self.release]
437
+ , globalMode = getEnvVar('GINA_GLOBAL_MODE') || main['def_global_mode'][self.release]
438
+ , arch = getEnvVar('GINA_ARCH') || main['def_arch'][self.release]
439
+ , platform = getEnvVar('GINA_PLATFORM') || main['def_platform'][self.release]
440
+ , env = getEnvVar('GINA_ENV') || main['def_env'][self.release]
441
+ , scope = getEnvVar('GINA_SCOPE') || main['def_scope'][self.release]
442
+ , settings = requireJSON( _( getPath('gina').root + '/resources/home/settings.json', true ) )
443
+ , userSettings = {}
444
+ , target = _(self.opt.homedir +'/'+ self.release +'/settings.json', true)
445
+ ;
446
+
447
+ // case of port & debug_port updated
448
+ var targetObj = new _(target);
449
+ var localUserSettings = null;
450
+ if ( targetObj.existsSync() ) {
451
+ localUserSettings = requireJSON(target);
452
+ } else {
453
+ localUserSettings = JSON.clone(settings);
454
+ }
455
+
456
+ if ( !getEnvVar('GINA_PORT') && targetObj.existsSync() ) {
457
+ if ( typeof(localUserSettings.port) != 'undefined' ) {
458
+ setEnvVar('GINA_PORT', ~~localUserSettings.port);
459
+ }
460
+ }
461
+ if ( !getEnvVar('GINA_DEBUG_PORT') && targetObj.existsSync() ) {
462
+ if ( typeof(localUserSettings.debug_port) != 'undefined' ) {
463
+ setEnvVar('GINA_DEBUG_PORT', ~~localUserSettings.debug_port);
464
+ }
465
+ }
466
+ if ( !getEnvVar('GINA_MQ_PORT') && targetObj.existsSync() ) {
467
+ if ( typeof(localUserSettings.mq_port) != 'undefined' ) {
468
+ setEnvVar('GINA_MQ_PORT', ~~localUserSettings.mq_port);
469
+ }
470
+ }
471
+ if ( !getEnvVar('GINA_HOST_V4') && targetObj.existsSync() ) {
472
+ if ( typeof(localUserSettings.host_v4) != 'undefined' ) {
473
+ setEnvVar('GINA_HOST_V4', localUserSettings.host_v4);
474
+ }
475
+ }
476
+ if ( !getEnvVar('GINA_HOSTNAME') && targetObj.existsSync() ) {
477
+ if ( typeof(localUserSettings.hostname) != 'undefined' ) {
478
+ setEnvVar('GINA_HOSTNAME', localUserSettings.hostname);
479
+ }
480
+ }
481
+
482
+
483
+ // updated on framework start : you never know which user is going to start gina (root ? sudo ? regular user)
484
+ // user settings override is passed through argv while using `gina framework:set` : —-logdir=value —-tmpdir=value —-rundir=value —-homedir=value
485
+
486
+ var uid = process.getuid()
487
+ , gid = process.getgid();
488
+
489
+ try {
490
+
491
+ /**
492
+ * Before updateing here, if you have new settings,
493
+ * make sure to complete : self.checkIfMain()
494
+ */
495
+
496
+ var dic = {
497
+ 'prefix' : prefix,
498
+ 'global_mode': globalMode,
499
+ 'version' : version,
500
+ 'arch' : arch,
501
+ 'platform': platform,
502
+ 'env' : env,
503
+ 'env_is_dev' : (main['dev_env'][self.release] == env) ? true : false,
504
+ 'dev_env' : main['dev_env'][self.release],
505
+ 'scope' : scope,
506
+ 'local_scope': main['local_scope'][self.release],
507
+ 'scope_is_local' : (main['local_scope'][self.release] == scope) ? true : false,
508
+ 'scope_is_production' : (main['production_scope'][self.release] == scope) ? true : false,
509
+ 'production_scope': main['production_scope'][self.release],
510
+ 'culture' : getEnvVar('GINA_CULTURE'),
511
+ 'iso_short': main['def_iso_short'][self.release],
512
+ 'date' : main['def_date'][self.release],
513
+ 'timezone' : getEnvVar('GINA_TIMEZONE'),
514
+ 'node_version': process.version,
515
+ 'port' : getEnvVar('GINA_PORT') || 8124, // TODO - scan for the next available port
516
+ 'debug_port' : getEnvVar('GINA_DEBUG_PORT') || process.debugPort || 5757,
517
+ 'host_v4' : getEnvVar('GINA_HOST_V4') || '127.0.0.1',
518
+ 'mq_port' : getEnvVar('GINA_MQ_PORT') || 8125,
519
+ 'hostname' : getEnvVar('GINA_HOSTNAME') || 'localhost',
520
+ 'user' : process.env.USER,
521
+ 'uid' : uid,
522
+ 'gid' : gid,
523
+ 'dir': getPath('gina').root,
524
+ 'home_dir' : _( getUserHome(), true ),
525
+ 'run_dir' : _( getRunDir(), true ),
526
+ 'tmp_dir' : _( getTmpDir(), true ),
527
+ 'log_dir' : _( getLogDir(), true ),
528
+ 'log_level' : getEnvVar('GINA_LOG_LEVEL') || main['def_log_level'][self.release] || 'info'
529
+ };
530
+
531
+ settings = whisper(dic, settings);
532
+ settings = merge(userSettings, settings);
533
+ self.settings = settings;
534
+
535
+ setEnvVar('GINA_PORT', settings['port']);
536
+ setEnvVar('GINA_DEBUG_PORT', settings['debug_port']);
537
+ // setEnvVar('GINA_MQ_PORT', settings['mq_port']);
538
+ // setEnvVar('GINA_HOST_V4', settings['host_v4']);
539
+ // setEnvVar('GINA_HOSTNAME', settings['hostname']);
540
+ setEnvVar('GINA_ENV_IS_DEV', settings['env_is_dev']);
541
+ setEnvVar('GINA_SCOPE_IS_LOCAL', settings['scope_is_local']);
542
+ setEnvVar('GINA_SCOPE_IS_PRODUCTION', settings['scope_is_production']);
543
+
544
+ console.debug('Framework env is: ', env);
545
+
546
+ lib.generator.createFileFromDataSync(
547
+ settings,
548
+ target
549
+ )
550
+ } catch (err) {
551
+ // console.error(err.stack);
552
+ // process.exit(1)
553
+ return done(err)
554
+ }
555
+
556
+ done()
557
+ }
558
+
559
+ /**
560
+ * Checking projects
561
+ *
562
+ **/
563
+ self.checkIfProjects = function(done) {
564
+ console.debug('Checking projects...');
565
+ var main = requireJSON( self.opt.homedir + '/main.json' );
566
+ var target = _(self.opt.homedir +'/projects.json', true);
567
+
568
+ if ( !fs.existsSync(target) ) {
569
+ lib.generator.createFileFromDataSync(
570
+ {},
571
+ target
572
+ )
573
+ }
574
+
575
+ var projects = requireJSON(target);
576
+ var newProjects = JSON.clone(projects);
577
+ for (let name in projects) {
578
+ let project = projects[name];
579
+ for (let prop in main) {
580
+ if ( typeof(project[prop]) != 'undefined' ) continue;
581
+ //if ( !Array.isArray(main[prop][self.release]) ) continue;
582
+
583
+ if ( !newProjects[name][prop] /**&& Array.isArray(main[prop][self.release])*/ ) {
584
+ newProjects[name][prop] = null;
585
+ }
586
+
587
+ try {
588
+ newProjects[name][prop] = JSON.clone(main[prop][self.release])
589
+ } catch (err) {
590
+ return done(err)
591
+ }
592
+ }
593
+ }
594
+
595
+ //console.debug('----> ', JSON.stringify(newProjects, null, 2));
596
+ lib.generator.createFileFromDataSync(
597
+ newProjects,
598
+ target
599
+ );
600
+
601
+ var argv = process.argv;
602
+ for (let i=0, len=argv.length; i<len; i++) {
603
+ if (/^\@/.test(argv[i]) ) {
604
+ local.projectName = argv[i].substring(1);
605
+ if ( typeof(newProjects[local.projectName]) != 'undefined' ) {
606
+ local.projectData = newProjects[local.projectName];
607
+ }
608
+ continue;
609
+ }
610
+
611
+ if ( /^\-\-scope\=/.test(argv[i]) ) {
612
+ local.scope = argv[i].split(/\=/)[1];
613
+ continue;
614
+ }
615
+
616
+ if ( /^\-\-env\=/.test(argv[i]) ) {
617
+ local.env = argv[i].split(/\=/)[1];
618
+ continue;
619
+ }
620
+ }
621
+
622
+ done()
623
+ }
624
+
625
+ /**
626
+ * Check env
627
+ *
628
+ * */
629
+ self.checkEnv = function(done) {
630
+ // ignored for framework:set
631
+ //if (self.opt.task.Action != 'set' && self.opt.task.topic != 'framework') {
632
+ var err = null;
633
+ var main = require( self.opt.homedir + '/main.json' );
634
+ //has registered env ?
635
+ // dev by default
636
+ var env = getEnvVar('GINA_ENV') || main['def_env'][self.release];
637
+ var readFromMainConf = true;
638
+ if ( typeof(local.projectData) != 'undefined' && local.env) {
639
+ readFromMainConf = false;
640
+ env = local.env;
641
+ }
642
+
643
+ switch (readFromMainConf) {
644
+ case false:
645
+ var projectData = JSON.clone(local.projectData);
646
+ if ( projectData.envs.indexOf(env) < 0 ) {
647
+ err = new Error('Environment [ ' + env + ' ] not registered. See [ man gina-env ].');
648
+ return done(err)
649
+ }
650
+
651
+ // has dev env ?
652
+ if (
653
+ typeof(projectData['dev_env']) == 'undefined'
654
+ ||
655
+ typeof(projectData['dev_env']) != 'undefined'
656
+ && typeof(projectData['dev_env']) != 'undefined'
657
+ && projectData.envs.indexOf(env) < 0
658
+ ) {
659
+ err = new Error('the framework has no dev env linked to any' +
660
+ 'environment to gina\'s.\nUse: $ gina env:link-dev <your_new_dev_env>');
661
+
662
+ return done(err)
663
+ }
664
+ break;
665
+
666
+ default:
667
+ if ( main.envs[self.release].indexOf(env) < 0 ) {
668
+ err = new Error('Environment [ ' + env + ' ] not registered. See [ man gina-env ].');
669
+ return done(err)
670
+ }
671
+
672
+ // has dev env ?
673
+ if (
674
+ typeof(main['dev_env']) == 'undefined'
675
+ || typeof(main['dev_env']) != 'undefined'
676
+ && typeof(main['dev_env'][self.release]) != 'undefined'
677
+ && main.envs[self.release].indexOf(main['dev_env'][self.release]) < 0
678
+ ) {
679
+ err = new Error('the framework has no dev env linked to any' +
680
+ 'environment to gina\'s.\nUse: $ gina env:link-dev <your_new_dev_env>');
681
+
682
+ return done(err)
683
+ }
684
+ break;
685
+ }
686
+ err = null;
687
+ main = null;
688
+ readFromMainConf = null;
689
+ env = null;
690
+
691
+ done()
692
+ }
693
+
694
+ /**
695
+ * Check scope
696
+ *
697
+ * */
698
+ self.checkScope = function(done) {
699
+ // ignored for framework:set
700
+ var err = null;
701
+ var main = require( self.opt.homedir + '/main.json' );
702
+ //has registered scope ?
703
+ // scope by default
704
+ var scope = getEnvVar('GINA_SCOPE') || main['def_scope'][self.release];
705
+ var readFromMainConf = true;
706
+ if ( typeof(local.projectData) != 'undefined' && local.scope) {
707
+ readFromMainConf = false;
708
+ scope = local.scope;
709
+ }
710
+
711
+ switch (readFromMainConf) {
712
+ case false:
713
+ var projectData = JSON.clone(local.projectData);
714
+ if ( projectData.scopes.indexOf(scope) < 0 ) {
715
+ err = new Error('Scope [ ' + scope + ' ] not registered. See [ man gina-scope ].');
716
+ return done(err)
717
+ }
718
+
719
+ // has local scope ?
720
+ if (
721
+ typeof(projectData['local_scope']) == 'undefined'
722
+ ||
723
+ typeof(projectData['local_scope']) != 'undefined'
724
+ && typeof(projectData['local_scope']) != 'undefined'
725
+ && projectData.scopes.indexOf(scope) < 0
726
+ ) {
727
+
728
+ err = new Error('the framework has no local scope linked to any ' +
729
+ 'scope to gina\'s.\nUse: $ gina scope:link-local <your_new_local_scope>');
730
+
731
+ return done(err)
732
+ }
733
+
734
+ // has production scope ?
735
+ if (
736
+ typeof(projectData['production_scope']) == 'undefined'
737
+ ||
738
+ typeof(projectData['production_scope']) != 'undefined'
739
+ && typeof(projectData['production_scope']) != 'undefined'
740
+ && projectData.scopes.indexOf(scope) < 0
741
+ ) {
742
+
743
+ err = new Error('the framework has no production scope linked to any ' +
744
+ 'scope to gina\'s.\nUse: $ gina scope:link-production <your_new_production_scope>');
745
+
746
+ return done(err)
747
+ }
748
+
749
+ projectData = null;
750
+ break;
751
+
752
+ default:
753
+ if ( main.scopes[self.release].indexOf(scope) < 0 ) {
754
+ err = new Error('Scope [ ' + scope + ' ] not registered. See [ man gina-scope ].');
755
+ return done(err)
756
+ }
757
+
758
+ // has local scope ?
759
+ if (
760
+ typeof(main['local_scope']) == 'undefined'
761
+ ||
762
+ typeof(main['local_scope']) != 'undefined'
763
+ && typeof(main['local_scope'][self.release]) != 'undefined'
764
+ && main.scopes[self.release].indexOf(main['local_scope'][self.release]) < 0
765
+ ) {
766
+ // process.exit(1)
767
+ err = new Error('the framework has no local scope linked to any ' +
768
+ 'scope to gina\'s.\nUse: $ gina scope:link-local <your_new_local_scope>');
769
+
770
+ return done(err)
771
+ }
772
+ // has production scope ?
773
+ if (
774
+ typeof(main['production_scope']) == 'undefined'
775
+ ||
776
+ typeof(main['production_scope']) != 'undefined'
777
+ && typeof(main['production_scope'][self.release]) != 'undefined'
778
+ && main.scopes[self.release].indexOf(main['production_scope'][self.release]) < 0
779
+ ) {
780
+ // process.exit(1)
781
+ err = new Error('the framework has no production scope linked to any ' +
782
+ 'scope to gina\'s.\nUse: $ gina scope:link-production <your_new_production_scope>');
783
+
784
+ return done(err)
785
+ }
786
+ break;
787
+ }
788
+ err = null;
789
+ main = null;
790
+ readFromMainConf = null;
791
+ scope = null;
792
+
793
+
794
+ done()
795
+ }
796
+
797
+ self.checkDomainLibRequirements = function(done) {
798
+ // check for `public_suffix_list.dat`
799
+ var domainLibPath = _( getEnvVar('GINA_FRAMEWORK_DIR') + '/lib/domain', true);
800
+ var distPathObj = new _(domainLibPath + '/dist', true);
801
+
802
+ if ( !distPathObj.existsSync() ) {
803
+ distPathObj.mkdirSync();
804
+ }
805
+ console.debug('Checking for PSL file');
806
+ var datFilenameObj = new _(distPathObj.toString() + '/public_suffix_list.dat', true);
807
+ if ( !datFilenameObj.existsSync() ) {
808
+ try {
809
+ new Domain({isCachingRequired: true}, done);
810
+ } catch (err) {
811
+ // console.error(err.stack||err.message||err);
812
+ // process.exit(1)
813
+ return done(err)
814
+ }
815
+ // new Domain({isCachingRequired: true}, done);
816
+ }
817
+
818
+ done()
819
+ }
820
+
821
+ self.checkIfCertificatesDir = function(done) {
822
+ var certsDir = new _( getEnvVar('GINA_HOMEDIR') + '/certificates', true);
823
+ var theRSARootCertsDir = new _(certsDir.toString() + '/RSARootCerts', true);
824
+ var scopesDir = new _(certsDir.toString() + '/scopes', true);
825
+
826
+ if ( !certsDir.existsSync() ) {
827
+ certsDir.mkdirSync()
828
+ }
829
+ if ( !theRSARootCertsDir.existsSync() ) {
830
+ theRSARootCertsDir.mkdirSync()
831
+ }
832
+ if ( !scopesDir.existsSync() ) {
833
+ scopesDir.mkdirSync()
834
+ }
835
+
836
+ var mainConfig = require( _(self.opt.homedir + '/main.json', true) );
837
+ var scopes = mainConfig.scopes[self.release];
838
+
839
+ for (let i = 0, len = scopes.length; i < len; i++) {
840
+ let scopeDir = new _( scopesDir.toString() +'/'+ scopes[i], true);
841
+ if ( !scopeDir.existsSync() ) {
842
+ scopeDir.mkdirSync()
843
+ }
844
+ }
845
+
846
+ done()
847
+ }
848
+
849
+
850
+ self.readSettings = function(done) {
851
+ for (let s in self.settings) {
852
+ if (!/^\_/.test(s) && !getEnvVar('GINA_' + s.toUpperCase()) ) {
853
+ setEnvVar('GINA_' + s.toUpperCase(), self.settings[s])
854
+ }
855
+ }
856
+
857
+ done();
858
+ }
859
+
860
+ /**
861
+ * Checking PIDs for cleanup
862
+ *
863
+ **/
864
+ self.checkRunningPids = function(done) {
865
+ console.debug('Checking PIDs for cleanup...');
866
+ if ( /true/.test(getEnvVar('GINA_IS_WIN32')) ) {
867
+ console.debug(' Skipping for windows...');
868
+ }
869
+ var err = null;
870
+ var runDirObj = new _( getEnvVar('GINA_RUNDIR'), true );
871
+ var runDir = runDirObj.toString();
872
+
873
+ if ( runDirObj.existsSync() ) {
874
+ console.debug('Run dir: ', runDir );
875
+ var files = fs.readdirSync(runDir);
876
+ for (let f in files) {
877
+ if ( /^\./.test(files[f]) ) {
878
+ continue;
879
+ }
880
+ let filenameObj = new _( runDir +'/'+ files[f], true );
881
+ let filename = filenameObj.toString();
882
+ let pid = fs.readFileSync(filename).toString();
883
+ if (!pid) {
884
+ filenameObj.rmSync();
885
+ continue;
886
+ }
887
+ let isRunnung = true;
888
+ try {
889
+ let found = execSync("ps -p "+ pid +" -o pid="); //.replace(/\n$/g, '') || null;
890
+ if (!found) {
891
+ isRunnung = false;
892
+ }
893
+ } catch (err) {
894
+ isRunnung = false;
895
+ }
896
+
897
+ if (!isRunnung) {
898
+ filenameObj.rmSync();
899
+ continue;
900
+ }
901
+
902
+
903
+ console.debug('Process file location: '+ filename +' ['+ pid +'] ['+ isRunnung +']');
904
+ } // EO for (let f in files) {
905
+ } else {
906
+ console.warn('Run directory `'+ runDir +'` not found !')
907
+ }
908
+
909
+ done()
910
+ }
911
+
912
+ self.end = function(done) {
913
+ defineDefault(process.gina);
914
+ done()
915
+ }
916
+
917
+ return {
918
+ onComplete: function(callback) {
919
+ e.once('init#complete', function(err, run, opt) {
920
+ callback(err, run, opt)
921
+ });
922
+ init(opt)
923
+ },
924
+ onListen: function(callback) {
925
+ e.once('init#listen', function(err, run, opt) {
926
+ callback(err, run, opt)
927
+ });
928
+ e.emit('init#listen', false, run, opt)
929
+ }
930
+ }
931
+ }
932
+ module.exports = Initialize;