gina 0.1.1-alpha.13 → 0.1.1-alpha.130

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 (313) hide show
  1. package/AUTHORS +2 -1
  2. package/README.md +144 -18
  3. package/bin/cli +110 -45
  4. package/bin/cli-debug +4 -4
  5. package/bin/cmd +39 -17
  6. package/bin/gina +39 -33
  7. package/{framework/v0.1.1-alpha.13/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
  8. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/AUTHORS +0 -0
  9. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/LICENSE +0 -0
  10. package/framework/v0.1.1-alpha.130/VERSION +1 -0
  11. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/html/nolayout.html +0 -0
  12. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/html/static.html +0 -0
  13. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/android-chrome-192x192.png +0 -0
  14. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/android-chrome-512x512.png +0 -0
  15. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/apple-touch-icon.png +0 -0
  16. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/favicon-16x16.png +0 -0
  17. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/favicon-32x32.png +0 -0
  18. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/asset/img/favicon.ico +0 -0
  19. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.js +0 -0
  20. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.js.map +0 -0
  21. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.min.css +0 -0
  22. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.min.css.map +0 -0
  23. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.min.js +0 -0
  24. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.min.js.map +0 -0
  25. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.onload.min.js +0 -0
  26. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/dist/gina.onload.min.js.map +0 -0
  27. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/css/toolbar-min.css +1 -0
  28. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/css/toolbar.css +3 -0
  29. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/css/toolbar.css.map +1 -0
  30. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/js/jquery-3.1.0.min.js +4 -0
  31. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/main.js +1542 -0
  32. package/framework/v0.1.1-alpha.130/core/asset/plugin/dist/toolbar/toolbar.html +251 -0
  33. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/readme.md +5 -5
  34. package/framework/{v0.1.1-alpha.13/core/asset/js → v0.1.1-alpha.130/core/asset}/plugin/uuid.json +0 -0
  35. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/config.js +0 -0
  36. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/index.js +0 -0
  37. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/connector.js +0 -0
  38. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  39. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  40. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/n1ql.js +0 -0
  41. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/session-store.js +0 -0
  42. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  43. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  44. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/controller/controller.framework.js +0 -0
  45. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/controller/controller.js +664 -664
  46. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/controller/index.js +0 -0
  47. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/.travis.yml +0 -0
  48. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/LICENSE +0 -0
  49. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/README.md +0 -0
  50. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
  51. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/deps/encoding/encoding.js +0 -0
  52. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/lib/main.js +0 -0
  53. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/lib/types/multipart.js +0 -0
  54. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/lib/types/urlencoded.js +0 -0
  55. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/lib/utils.js +0 -0
  56. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/busboy/package.json +0 -0
  57. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  58. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/dev/index.js +0 -0
  59. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/dev/lib/class.js +0 -0
  60. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/dev/lib/factory.js +0 -0
  61. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/dev/lib/tools.js +0 -0
  62. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/gna.js +0 -0
  63. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/README.md +0 -0
  64. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/currency.json +0 -0
  65. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/dist/language/en.json +0 -0
  66. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/dist/language/fr.json +0 -0
  67. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/dist/region/en.json +0 -0
  68. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/dist/region/fr.json +0 -0
  69. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/index.js +0 -0
  70. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/src/make.js +0 -0
  71. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/src/resources/currency.csv +0 -0
  72. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/src/resources/region.csv +0 -0
  73. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/locales/src/resources/region.mapping.json +0 -0
  74. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/mime.types +0 -0
  75. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/model/entity.js +0 -0
  76. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/model/index.js +0 -0
  77. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/model/template/entityFactory.js +0 -0
  78. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/model/template/index.js +0 -0
  79. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/README.md +0 -0
  80. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/index.js +0 -0
  81. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/file/README.md +0 -0
  82. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/file/build.json +0 -0
  83. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/file/package.json +0 -0
  84. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/intl/README.md +0 -0
  85. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/intl/build.json +0 -0
  86. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/intl/package.json +0 -0
  87. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/intl/src/main.js +0 -0
  88. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/storage/README.md +0 -0
  89. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/storage/build.json +0 -0
  90. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/storage/package.json +0 -0
  91. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/storage/src/main.js +0 -0
  92. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/validator/README.md +0 -0
  93. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/validator/build.json +0 -0
  94. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/validator/package.json +0 -0
  95. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/validator/src/form-validator.js +0 -0
  96. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/plugins/lib/validator/src/main.js +0 -0
  97. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/router.js +0 -0
  98. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/server.express.js +0 -0
  99. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/server.isaac.js +0 -0
  100. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/server.js +0 -0
  101. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/status.codes +0 -0
  102. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/config/app.json +0 -0
  103. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/config/routing.json +0 -0
  104. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/config/settings.json +0 -0
  105. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  106. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/config/templates.json +4 -4
  107. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  108. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  109. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  110. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle/index.js +0 -0
  111. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  112. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  113. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  114. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  115. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  116. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_public/readme.md +0 -0
  117. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  118. package/framework/v0.1.1-alpha.130/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
  119. package/framework/v0.1.1-alpha.130/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
  120. package/framework/v0.1.1-alpha.130/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
  121. package/framework/{v0.1.1-alpha.13/core/template/boilerplate/bundle_templates/html/layout → v0.1.1-alpha.130/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
  122. package/framework/v0.1.1-alpha.130/core/template/command/gina.bat.tpl +8 -0
  123. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/command/gina.tpl +0 -0
  124. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/env.json +0 -0
  125. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/manifest.json +0 -0
  126. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/package.json +0 -0
  127. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/settings.json +0 -0
  128. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/statics.json +3 -3
  129. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/conf/templates.json +2 -2
  130. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/client/json/401.json +0 -0
  131. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/client/json/403.json +0 -0
  132. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/client/json/404.json +0 -0
  133. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/server/html/50x.html +0 -0
  134. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/server/json/500.json +0 -0
  135. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/error/server/json/503.json +0 -0
  136. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/core/template/extensions/logger/config.json +0 -0
  137. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/console.js +0 -0
  138. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/context.js +0 -0
  139. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/dateFormat.js +0 -0
  140. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/index.js +0 -0
  141. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/json/README.md +0 -0
  142. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/json/package.json +0 -0
  143. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/json/src/main.js +0 -0
  144. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/path.js +86 -80
  145. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/plugins/README.md +0 -0
  146. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/plugins/package.json +0 -0
  147. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/plugins/src/api-error.js +0 -0
  148. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/plugins/src/main.js +0 -0
  149. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/prototypes.js +35 -36
  150. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/task.js +21 -14
  151. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/helpers/text.js +0 -0
  152. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/archiver/README.md +0 -0
  153. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/archiver/build.json +0 -0
  154. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/archiver/package.json +0 -0
  155. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/archiver/src/dep/jszip.min.js +0 -0
  156. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/archiver/src/main.js +0 -0
  157. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/aliases.json +0 -0
  158. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/add.js +43 -17
  159. package/framework/v0.1.1-alpha.130/lib/cmd/bundle/arguments.json +6 -0
  160. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/copy.js +0 -0
  161. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/cp.js +0 -0
  162. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/help.js +0 -0
  163. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/help.txt +0 -0
  164. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/list.js +0 -0
  165. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/remove.js +22 -22
  166. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/rename.js +0 -0
  167. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/restart.js +0 -0
  168. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/rm.js +0 -0
  169. package/framework/v0.1.1-alpha.130/lib/cmd/bundle/start.js +408 -0
  170. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/status.js +0 -0
  171. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/bundle/stop.js +89 -74
  172. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/add.js +0 -0
  173. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/get.js +0 -0
  174. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/help.js +0 -0
  175. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/help.txt +0 -0
  176. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/link-dev.js +0 -0
  177. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/list.js +0 -0
  178. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/remove.js +0 -0
  179. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/rm.js +0 -0
  180. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/set.js +0 -0
  181. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/env/unset.js +0 -0
  182. package/framework/{v0.1.1-alpha.13/lib/cmd/scope → v0.1.1-alpha.130/lib/cmd/env}/use.js +21 -1
  183. package/framework/v0.1.1-alpha.130/lib/cmd/framework/build.js +85 -0
  184. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/dot.js +0 -0
  185. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/get.js +0 -0
  186. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/help.js +0 -0
  187. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/help.txt +0 -0
  188. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/init.js +64 -16
  189. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/msg.json +0 -0
  190. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/open.js +15 -0
  191. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/restart.js +53 -25
  192. package/framework/v0.1.1-alpha.130/lib/cmd/framework/set.js +264 -0
  193. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/start.js +35 -12
  194. package/framework/v0.1.1-alpha.130/lib/cmd/framework/status.js +123 -0
  195. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/stop.js +44 -28
  196. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/tail.js +50 -46
  197. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/update.js +0 -0
  198. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/framework/version.js +12 -3
  199. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/gina-dev.1.md +0 -0
  200. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/gina-framework.1.md +0 -0
  201. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/gina.1.md +0 -0
  202. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/helper.js +0 -0
  203. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/index.js +21 -21
  204. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/msg.json +0 -0
  205. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/port/help.js +0 -0
  206. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/port/help.txt +0 -0
  207. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/port/inc/scan.js +0 -0
  208. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/port/list.js +0 -0
  209. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/port/set.js +0 -0
  210. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/add.js +120 -107
  211. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/arguments.json +0 -0
  212. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/build.js +0 -0
  213. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/help.js +0 -0
  214. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/help.txt +0 -0
  215. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/import.js +0 -0
  216. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/list.js +0 -0
  217. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/move.js +0 -0
  218. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/remove.js +17 -17
  219. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/rename.js +0 -0
  220. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/restart.js +0 -0
  221. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/rm.js +0 -0
  222. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/start.js +0 -0
  223. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/status.js +0 -0
  224. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/project/stop.js +0 -0
  225. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/protocol/help.js +0 -0
  226. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/protocol/help.txt +0 -0
  227. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/protocol/list.js +0 -0
  228. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/protocol/set.js +0 -0
  229. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/help.js +0 -0
  230. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/help.txt +0 -0
  231. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/link-local.js +0 -0
  232. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/list.js +0 -0
  233. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/remove.js +0 -0
  234. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/rm.js +0 -0
  235. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/set.js +0 -0
  236. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/scope/unset.js +0 -0
  237. package/framework/{v0.1.1-alpha.13/lib/cmd/env → v0.1.1-alpha.130/lib/cmd/scope}/use.js +0 -0
  238. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cmd/view/add.js +34 -9
  239. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/collection/README.md +0 -0
  240. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/collection/build.json +0 -0
  241. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/collection/package.json +0 -0
  242. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/collection/src/main.js +0 -0
  243. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/config.js +0 -0
  244. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cron/README.md +0 -0
  245. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cron/package.json +0 -0
  246. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/cron/src/main.js +0 -0
  247. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/generator/index.js +0 -0
  248. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/index.js +0 -0
  249. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/LICENSE +0 -0
  250. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/README.md +0 -0
  251. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  252. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/example/protected_inheritance.js +0 -0
  253. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/example/simple_inheritance.js +0 -0
  254. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  255. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/package.json +0 -0
  256. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/inherits/src/main.js +0 -0
  257. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/README.md +0 -0
  258. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/package.json +0 -0
  259. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/default/index.js +0 -2
  260. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/file/index.js +8 -6
  261. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  262. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  263. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/mq/index.js +1 -1
  264. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/mq/listener.js +16 -14
  265. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/containers/mq/speaker.js +4 -2
  266. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/helper.js +0 -0
  267. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/logger/src/main.js +0 -0
  268. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/math/index.js +0 -0
  269. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/README.md +0 -0
  270. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/example/merge.js +0 -0
  271. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/example/merge_2_literal objects.js +0 -0
  272. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/example/merge_and_preserve_first.js +0 -0
  273. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/package.json +0 -0
  274. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/merge/src/main.js +0 -0
  275. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/model.js +0 -0
  276. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/proc.js +70 -43
  277. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/routing/README.md +0 -0
  278. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/routing/build.json +0 -0
  279. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/routing/package.json +0 -0
  280. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/routing/src/main.js +0 -0
  281. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/session-store.js +0 -0
  282. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/shell.js +0 -0
  283. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/swig-filters/README.md +0 -0
  284. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/swig-filters/package.json +0 -0
  285. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/swig-filters/src/main.js +0 -0
  286. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/url/README.md +0 -0
  287. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/url/index.js +0 -0
  288. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/url/mocks.json +0 -0
  289. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/url/routing.json +0 -0
  290. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/url/test.js +0 -0
  291. package/framework/{v0.1.1-alpha.13 → v0.1.1-alpha.130}/lib/validator.js +0 -0
  292. package/framework/v0.1.1-alpha.130/package.json +14 -0
  293. package/package.json +30 -21
  294. package/resources/home/main.json +19 -1
  295. package/resources/home/settings.json +5 -0
  296. package/resources/home/user/extensions/logger/default/config.json +1 -1
  297. package/resources/package.json.template +28 -17
  298. package/script/post_install.js +393 -120
  299. package/script/post_publish.js +185 -0
  300. package/script/pre_install.js +424 -76
  301. package/script/prepare_version.js +151 -21
  302. package/utils/helper.js +223 -41
  303. package/utils/prototypes.js +9 -9
  304. package/utils/prototypes.json_clone.js +31 -31
  305. package/doc/framework/cli/doc.json +0 -9
  306. package/doc/framework/index.md +0 -60
  307. package/framework/v0.1.1-alpha.13/VERSION +0 -1
  308. package/framework/v0.1.1-alpha.13/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
  309. package/framework/v0.1.1-alpha.13/lib/cmd/bundle/arguments.json +0 -4
  310. package/framework/v0.1.1-alpha.13/lib/cmd/bundle/start.js +0 -394
  311. package/framework/v0.1.1-alpha.13/lib/cmd/framework/set.js +0 -161
  312. package/framework/v0.1.1-alpha.13/lib/cmd/framework/status.js +0 -72
  313. package/framework/v0.1.1-alpha.13/package.json +0 -14
@@ -0,0 +1,408 @@
1
+ const { debug } = require('console');
2
+ var fs = require('fs');
3
+ const { spawn } = require('child_process');
4
+
5
+ var CmdHelper = require('./../helper');
6
+ var console = lib.logger;
7
+ /**
8
+ * Start a given bundle or start all bundles at once
9
+ *
10
+ * e.g.
11
+ * gina bundle:start <bundle_name> @<project_name>
12
+ *
13
+ * // start all bundles within the project
14
+ * gina bundle:start @<project_name>
15
+ *
16
+ * */
17
+ function Start(opt, cmd) {
18
+ var self = {};
19
+
20
+
21
+ var init = function(opt, cmd) {
22
+
23
+ // import CMD helpers
24
+ new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
25
+
26
+ // check CMD configuration
27
+ if (!isCmdConfigured()) return false;
28
+
29
+
30
+ // start all bundles
31
+ opt.onlineCount = 0;
32
+ opt.notStarted = [];
33
+
34
+ if (!self.name) {
35
+ start(opt, cmd, 0);
36
+ } else {
37
+ start(opt, cmd);
38
+ }
39
+ }
40
+
41
+ var start = function(opt, cmd, bundleIndex) {
42
+ // getting the debug port
43
+ var debugStr = null;
44
+ if ( /\-\-(inspect|debug)/.test(opt.argv.join(',')) ) {
45
+ var pArr = null;
46
+ for (let i = 0, len = opt.argv.length; i<len; i++) {
47
+ if ( /\-\-(inspect|debug)/.test(opt.argv[i]) ) {
48
+ pArr = opt.argv[i].replace(/\s+/g, '').split(/=/);
49
+ opt.debugBrkEnabled = /\-brk/.test(pArr[0]);
50
+ opt.debugPort = pArr[1];
51
+ debugStr = opt.argv[i];
52
+ break;
53
+ }
54
+ }
55
+ }
56
+
57
+
58
+ var isBulkStart = (typeof(bundleIndex) != 'undefined') ? true : false;
59
+
60
+ var bundle = (isBulkStart) ? self.bundles[bundleIndex] : self.name;
61
+ // console.debug('bundle -> ', bundle);
62
+ var env = ( typeof(self.bundlesByProject[self.projectName][bundle].def_env) != 'undefined') ? self.bundlesByProject[self.projectName][bundle].def_env : self.defaultEnv;
63
+ // console.debug('env -> ', env);
64
+ var protocol = self.bundlesByProject[self.projectName][bundle].def_protocol;
65
+ // console.debug('protocol -> ', protocol);
66
+ var scheme = self.bundlesByProject[self.projectName][bundle].def_scheme;
67
+ // console.debug('scheme -> ', scheme);
68
+ var bundlePort = self.portsReverseData[bundle + '@' + self.projectName][env][protocol][scheme];
69
+ // console.debug('port -> ', bundlePort);
70
+
71
+ var msg = null;
72
+ if ( !isBulkStart && !isDefined('bundle', bundle) ) {
73
+ msg = 'Bundle [ '+ bundle +' ] is not registered inside `@'+ self.projectName +'`';
74
+ console.error(msg);
75
+ // opt.client.write(msg);
76
+ // // CMD exit
77
+ // opt.client.emit('end');
78
+
79
+ opt.msg = msg;
80
+ return end(opt, cmd, isBulkStart, bundleIndex, true)
81
+ }
82
+
83
+ var isStarting = false
84
+ , params = null
85
+ , index = null
86
+ , i = null
87
+ , len = null
88
+ ;
89
+
90
+ isRealApp(bundle, function(err, appPath){
91
+ if (err) {
92
+ console.error(err.stack||err.message)
93
+ } else {
94
+ if (isStarting)
95
+ return;
96
+
97
+ msg = 'Trying to start bundle [ ' + bundle + '@' + self.projectName + ' ]';
98
+ if (opt.debugPort) {
99
+ msg += ' (debug port: '+ opt.debugPort +')'
100
+ }
101
+ // To gina log
102
+ console.info(msg);
103
+ // to the terminal stdout
104
+ opt.client.write('\n\r'+msg);
105
+
106
+ process.list = (process.list == undefined) ? [] : process.list;
107
+ setContext('processList', process.list);
108
+ setContext('ginaProcess', process.pid);
109
+ setContext('debugPort', opt.debugPort);
110
+ setContext('debugBrkEnabled', opt.debugBrkEnabled);
111
+
112
+ params = [
113
+ // node arguments will be passed by gina
114
+ appPath,
115
+ JSON.stringify(getContext()), //Passing context to child.
116
+ self.projectName, // project name
117
+ bundle// bundle name
118
+ ];
119
+
120
+ // injecting node arguments
121
+ index = 0; i = 0; len = self.nodeParams.length;
122
+ if (len > 0) {
123
+ for (; i < len; ++i) {
124
+ params.splice(index, 0, self.nodeParams[i]);
125
+ ++index
126
+ }
127
+ }
128
+
129
+ i = 0; len = params.length;
130
+ for (; i < len; ++i) {
131
+ if (params[i] == '') {
132
+ params.splice(i, 1);
133
+ }
134
+ }
135
+
136
+
137
+ var child = spawn(opt.argv[0], params,
138
+ {
139
+ detached: true
140
+ }
141
+ );
142
+
143
+ child.stdout.setEncoding('utf8');//Set encoding.
144
+
145
+ // CMD Auto Exit
146
+ var retry = 0, maxRetry = 15, maxTimeout = (self.debugBrkEnabled) ? 1200000 : 4000;
147
+ var timerId = setInterval(function() {
148
+ if (!isStarting ) {
149
+ ++retry;
150
+ //opt.client.write('what is wrong ? '+ retry);
151
+ } else {
152
+ clearInterval(timerId);
153
+ }
154
+
155
+ if (retry > maxRetry) {
156
+ clearInterval(timerId);
157
+ opt.client.write('Sorry my friend, this is taking too long ! Terminating. Check your logs.');
158
+ child.kill('SIGKILL');
159
+ if (!opt.client.destroyed) {
160
+ opt.client.emit('exit');
161
+ opt.client.emit('end');
162
+ }
163
+
164
+
165
+ //end(opt, cmd, isBulkStart, bundleIndex);
166
+ }
167
+ }, maxTimeout);
168
+
169
+ var checkCaseCount = 2
170
+ // The 2 flags we need to free the child.stdout if we do not want the command to wait for a timeout
171
+ // NB.: you can place flag by using console.notice
172
+ , checkCaseRe = new RegExp('('+bundle + '@' + self.projectName + ' mounted !|Bundle started !)', 'i')
173
+ , url = null
174
+ , debuggerOn = null
175
+ ;
176
+ var port = '', errorFound = false;
177
+ child.stdout.on('data', function(data) {
178
+ // console.log(data);
179
+
180
+ // handle errors
181
+ if ( /EADDRINUSE.*port/i.test(data) && !errorFound ) {
182
+ console.log(data);
183
+ // kill the bundle starting process first
184
+ child.kill('SIGKILL');
185
+
186
+ errorFound = true;
187
+ //opt.client.write(data);
188
+ try {
189
+ port = ' #'+ data.match(/port\":\s+\d+/)[0].split(/\:/)[1].trim() +' ';
190
+ opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] has already been started, or port'+ port+'might be busy');
191
+
192
+ } catch(_err) {
193
+ opt.client.write(_err);
194
+ }
195
+
196
+
197
+ ++opt.onlineCount;
198
+ end(opt, cmd, isBulkStart, bundleIndex);
199
+ clearInterval(timerId);
200
+
201
+ return;
202
+ }
203
+
204
+ // catch fatal errors to exit
205
+ if ( /(\[|\[\s+)emerg/.test(data) ) {
206
+ console.log(data);
207
+
208
+ // kill the bundle starting process first
209
+ child.kill('SIGKILL');
210
+
211
+ opt.notStarted.push(bundle + '@' + self.projectName);
212
+ opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] aborted :( \n => Check your logs to see why.');
213
+
214
+ ++opt.onlineCount;
215
+ end(opt, cmd, isBulkStart, bundleIndex);
216
+ clearInterval(timerId);
217
+
218
+ return;
219
+ }
220
+
221
+ // Expecting 2 flags (checkCaseCount) to free the child stdout !!
222
+ if ( checkCaseRe.test(data) ) {
223
+ --checkCaseCount;
224
+ }
225
+
226
+ // cache bundle state info given by the server while starting
227
+ if ( !debuggerOn && new RegExp('Debugger listening on','gmi').test(data)) {
228
+ debuggerOn = '\n ' + data.match(new RegExp('Debugger listening on .*','gmi'));
229
+ }
230
+ if ( !url && new RegExp('This way please','gmi').test(data)) {
231
+ url = '\n ' + data.match(new RegExp('This way please -> .*','gmi'));
232
+ }
233
+
234
+
235
+
236
+ if (!opt.client.destroyed && !isStarting && !checkCaseCount) {
237
+ isStarting = true;
238
+ clearInterval(timerId);
239
+ ++opt.onlineCount;
240
+
241
+ if (!debuggerOn) {
242
+ debuggerOn = ''
243
+ }
244
+ opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] started V(-.o)V'+ url + debuggerOn);
245
+
246
+
247
+ end(opt, cmd, isBulkStart, bundleIndex);
248
+ return;
249
+ }
250
+
251
+ return;
252
+
253
+ });
254
+
255
+ //when an exception is thrown, it is sent to the client
256
+ child.stderr.setEncoding('utf8');
257
+ var error = null;
258
+ child.stderr.on('data', function(err) {
259
+ error = err.toString();
260
+
261
+ if (/Debugger listening|Debugger attached|Warning|address already in use/i.test(error)) {
262
+ console.warn(error);
263
+
264
+ if (!opt.client.destroyed) {
265
+ opt.client.write(error);
266
+ }
267
+
268
+ } else {
269
+ console.error(error);
270
+ }
271
+ });
272
+
273
+ child.on('exit', function(code, signal) {
274
+ // handles only signals that cannot be cannot be caught or ignored
275
+ // ref.: `framework/<version>/lib/proc.js`
276
+ if (/(SIGKILL|SIGSTOP)/i.test(signal)) {
277
+ console.emerg('[' + this.pid + '] exiting with signal: ', signal);
278
+ cmd.proc.dismiss(this.pid, signal);
279
+ }
280
+ });
281
+
282
+
283
+ }
284
+
285
+ });//EO isRealApp
286
+
287
+ }
288
+
289
+
290
+ var end = function (opt, cmd, isBulkStart, i, error) {
291
+ if ( typeof(opt.msg) != 'undefined' ) {
292
+ opt.client.write('\n\r'+ opt.msg);
293
+ }
294
+ if (isBulkStart) {
295
+ ++i;
296
+ if ( typeof(self.bundles[i]) != 'undefined' ) {
297
+ start(opt, cmd, i)
298
+ } else {
299
+ opt.client.write('\n\r[ Online ] '+ opt.onlineCount +'/'+ self.bundles.length);
300
+ var notStartedMsg = '\nCould not start: \n - '+ opt.notStarted.join('\n');
301
+ opt.client.write(notStartedMsg);
302
+
303
+ if ( typeof(error) != 'undefined') {
304
+ process.exit(1);
305
+ }
306
+
307
+ if (!opt.client.destroyed)
308
+ opt.client.emit('end');
309
+ }
310
+ return;
311
+ }
312
+
313
+ if ( typeof(error) != 'undefined') {
314
+ process.exit(1);
315
+ }
316
+
317
+ if (!opt.client.destroyed)
318
+ opt.client.emit('end');
319
+ // Force exit in case process is stuck
320
+ setTimeout(() => {
321
+ if (!opt.client.destroyed) {
322
+ opt.client.emit('exit');
323
+ }
324
+ }, 150);
325
+ }
326
+
327
+
328
+
329
+ var isRealApp = function(bundle, callback) {
330
+ var p = null
331
+ , d = null
332
+ , env = self.projects[self.projectName]['def_env']
333
+ , isDev = ( self.projects[self.projectName]['dev_env'] == env ) ? true : false
334
+ , root = self.projectLocation
335
+ , bundleDir = null
336
+ , bundlesPath = null
337
+ , bundleInit = null
338
+ ;
339
+
340
+ try {
341
+ //This is mostly for dev.
342
+ var pkg = requireJSON( _(root+ '/manifest.json', true) ).bundles;
343
+ if ( typeof(pkg[bundle].version) == 'undefined' && typeof(pkg[bundle].tag) != 'undefined') {
344
+ pkg[bundle].version = pkg[bundle].tag
345
+ }
346
+
347
+ var path = null, version = null;
348
+ if (
349
+ pkg[bundle] != 'undefined' && pkg[bundle]['src'] != 'undefined' && isDev
350
+ ) {
351
+ path = pkg[bundle].src;
352
+
353
+ p = _( root +'/'+ path );//path.replace('/' + bundle, '')
354
+ d = _( root +'/'+ path + '/index.js' );
355
+
356
+ bundleDir = path.replace('/' + bundle, '');
357
+ setContext('bundle_dir', bundleDir);
358
+ bundlesPath = _( root +'/'+ bundleDir );
359
+ bundleInit = d;
360
+
361
+ } else {
362
+ //Others releases.
363
+ path = 'releases/'+ bundle +'/' + env +'/'+ pkg[bundle].version;
364
+ version = pkg[bundle].version;
365
+ p = _( root +'/'+ path );//path.replace('/' + bundle, '')
366
+ d = _( root +'/'+ path + '/index.js' );
367
+
368
+ bundleDir = path;
369
+ bundlesPath = _(root + '/'+ bundleDir);
370
+ bundleInit = d;
371
+ }
372
+
373
+ } catch (err) {
374
+ // default bundlesPath.
375
+ // TODO - log warn ?
376
+ console.warn(err.stack||err.message);
377
+ bundleDir = 'bundles';
378
+ bundlesPath = _(root +'/'+ bundleDir);
379
+ p = _(root +'/'+ bundleDir +'/'+ bundle);
380
+ d = _(root + '/'+ bundleDir +'/'+ bundle + '/index.js');
381
+ bundleInit = d;
382
+ }
383
+
384
+ //Checking root.
385
+ if ( new _(d, true).existsSync() ) {
386
+ //checking bundle directory.
387
+ fs.stat(p, function(err, stats) {
388
+ if (err) {
389
+ callback(err)
390
+ } else {
391
+
392
+ if (stats.isDirectory()) {
393
+ callback(false, d)
394
+ } else {
395
+ callback(new Error('[ ' + d + ' ] is not a directory'))
396
+ }
397
+ }
398
+ })
399
+ }
400
+ else {
401
+ callback(new Error('[ ' + d + ' ] does not exists'))
402
+ }
403
+ }
404
+
405
+
406
+ init(opt, cmd)
407
+ }
408
+ module.exports = Start;
@@ -1,3 +1,4 @@
1
+ const { execSync } = require('child_process');
1
2
  var fs = require('fs');
2
3
  var exec = require('child_process').exec;
3
4
 
@@ -8,7 +9,7 @@ var console = lib.logger;
8
9
  *
9
10
  * e.g.
10
11
  * gina bundle:stop <bundle_name> @<project_name>
11
- *
12
+ *
12
13
  * // stop all bundles within the project
13
14
  * gina bundle:stop @<project_name>
14
15
  *
@@ -17,26 +18,26 @@ function Stop(opt, cmd) {
17
18
  var self = {};
18
19
 
19
20
  var init = function(opt, cmd) {
20
-
21
+
21
22
  // import CMD helpers
22
23
  new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
23
24
 
24
25
  // check CMD configuration
25
26
  if (!isCmdConfigured()) return false;
26
-
27
- // start all bundles
28
- opt.offlineCount = 0;
29
- opt.notStopped = [];
30
-
27
+
28
+ // start all bundles
29
+ opt.offlineCount = 0;
30
+ opt.notStopped = [];
31
+
31
32
  if (!self.name) {
32
33
  stop(opt, cmd, 0);
33
34
  } else {
34
35
  stop(opt, cmd);
35
- }
36
+ }
36
37
  }
37
-
38
+
38
39
  var stop = function(opt, cmd, bundleIndex) {
39
-
40
+
40
41
  var isBulkStop = (typeof(bundleIndex) != 'undefined') ? true : false;
41
42
  var bundle = (isBulkStop) ? self.bundles[bundleIndex] : self.name;
42
43
 
@@ -44,70 +45,82 @@ function Stop(opt, cmd) {
44
45
  if (!isBulkStop && !isDefined('bundle', bundle)) {
45
46
  msg = 'Bundle [ ' + bundle + ' ] is not registered inside `@' + self.projectName + '`';
46
47
  console.error(msg);
47
- end(opt, cmd, isBulkStop, bundleIndex, true)
48
+ opt.msg = msg;
49
+ return end(opt, cmd, isBulkStop, bundleIndex, true)
50
+ }
48
51
 
49
- } else {
52
+ isRealApp(bundle, function(err, appPath) {
50
53
 
51
- isRealApp(bundle, function(err, appPath) {
54
+ if (err) {
55
+ console.error(err.stack || err.message)
56
+ }
52
57
 
53
- if (err) {
54
- console.error(err.stack || err.message)
58
+ var error = null;
59
+ var proc = null;
60
+ var isSpecialCase = false;
61
+ var pidPath = _(GINA_RUNDIR +'/'+ bundle +'@'+ self.projectName +'.pid', true);
62
+ try {
63
+ proc = fs.readFileSync(_(GINA_RUNDIR+'/'+bundle + '@' + self.projectName +'.pid')).toString().replace(/\n/g, '');
64
+ proc = parseInt(proc);
65
+
66
+ } catch(err) {
67
+ isSpecialCase = true;
68
+ // Some how pid file could have been deleted leaving a zombie process running
69
+ var list = execSync("ps -ef | grep -v grep | grep 'gina: "+ bundle + '@' + self.projectName +"' | awk '{print $2\" \"$8$9}'").toString().replace(/\n$/, '').split(/\n/g);
70
+ if (list.length && list[0] != '') {
71
+ proc = ~~list[0].split(/\s+/)[0];
72
+ } else {
73
+ error = err.toString();
74
+ console.debug(error);
55
75
  }
76
+ }
56
77
 
57
- //console.info('Trying to stop bundle [ ' + bundle + '@' + self.projectName + ' ]');
58
- var error = null;
59
- exec('ps -Af|grep "gina: ' + bundle + '@' + self.projectName + '"', function(err, data) {
78
+ msg = 'Trying to stop bundle [ ' + bundle + '@' + self.projectName + ' ]\n\r';
79
+ opt.client.write('\n\r'+msg);
60
80
 
61
- if (err) {
62
- error = err.toString();
63
- console.error(error);
64
- opt.notStopped.push(bundle + '@' + self.projectName);
65
- end(opt, cmd, isBulkStop, bundleIndex, true)
66
- //process.exit(1)
67
- }
81
+ // if ( !re.test(row[0]) ) {
82
+ if (proc) {
83
+ //console.debug('\n'+ row.join('\n'));
84
+ //console.debug('kill -TERM ', proc, arr);
68
85
 
69
- var row = data.split(/\n/g)
70
- , r = 0
71
- , len = row.length
72
- , arr = row[0].replace(/(?:\\[rn]|[\r\n])/g, '').split(/\s+/g)
73
- , proc = (arr[2] != '') ? arr[2] : arr[3]; // arr[4] is for minions;
74
-
75
- // matching `grep` CMD PID to be excluded in the next test
76
- var re = new RegExp('(\\bgrep\\W+)(gina: '+ bundle+'@'+ self.projectName+')');
77
- msg = 'Trying to stop bundle [ ' + bundle + '@' + self.projectName + ' ]\n\r';
78
- opt.client.write('\n\r'+msg);
79
-
80
- if ( !re.test(row[0]) ) {
81
- //console.debug('\n'+ row.join('\n'));
82
- //console.debug('kill -TERM ', proc, arr);
83
-
84
- exec('kill -9 ' + proc, function(err, data) {
85
- if (!err) {
86
- ++opt.offlineCount;
87
- //console.info('Bundle [ ' + bundle + '@' + self.projectName + ' ] with PID [ ' + proc + ' ] stopped !');
88
- opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] with PID [ ' + proc + ' ] stopped !\n');
89
-
90
- end(opt, cmd, isBulkStop, bundleIndex)
91
- } else {
92
- console.error( err.toString())
93
- }
94
- })
95
- } else { // not running
96
- //console.info('Bundle `' + bundle + '@' + self.projectName + '` is not running');
97
- opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] is not running\n');
98
-
86
+ exec('kill -9 ' + proc, function(err, data) {
87
+ // just in case
88
+ if ( new _(pidPath).existsSync() ) {
89
+ isSpecialCase = true;
90
+ fs.unlinkSync( pidPath );
91
+ }
92
+ if (!err) {
99
93
  ++opt.offlineCount;
100
- opt.notStopped.push(bundle + '@' + self.projectName);
94
+ //console.info('Bundle [ ' + bundle + '@' + self.projectName + ' ] with PID [ ' + proc + ' ] stopped !');
95
+ opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] with PID [ ' + proc + ' ] stopped !\n');
96
+
101
97
  end(opt, cmd, isBulkStop, bundleIndex)
98
+ } else {
99
+ if (!isSpecialCase) {
100
+ console.error( err.toString())
101
+ } else {
102
+ end(opt, cmd, isBulkStop, bundleIndex)
103
+ }
102
104
  }
103
- });
104
- })//EO isRealApp
105
- }
105
+ })
106
+ } else { // not running
107
+ //console.info('Bundle `' + bundle + '@' + self.projectName + '` is not running');
108
+ opt.client.write(' [ ' + bundle + '@' + self.projectName + ' ] is not running\n');
109
+
110
+ ++opt.offlineCount;
111
+ opt.notStopped.push(bundle + '@' + self.projectName);
112
+ end(opt, cmd, isBulkStop, bundleIndex)
113
+ }
114
+ })//EO isRealApp
115
+
106
116
  }
107
-
117
+
108
118
  var end = function (opt, cmd, isBulkStop, i, error) {
109
- if (isBulkStop) {
110
- ++i;
119
+ if ( typeof(opt.msg) != 'undefined' ) {
120
+ opt.client.write('\n\r'+ opt.msg);
121
+ }
122
+ if (isBulkStop) {
123
+ ++i;
111
124
  if ( typeof(self.bundles[i]) != 'undefined' ) {
112
125
  stop(opt, cmd, i)
113
126
  } else {
@@ -117,26 +130,26 @@ function Stop(opt, cmd) {
117
130
  notStoppedMsg = '\nThe following bundles could not be stopped or were not running: \n - '+ opt.notStopped.join('\n - ') + '\n\r';
118
131
  opt.client.write(notStoppedMsg);
119
132
  }
120
-
121
-
133
+
134
+
122
135
  if ( typeof(error) != 'undefined') {
123
136
  process.exit(1);
124
137
  }
125
138
  if (!opt.client.destroyed)
126
139
  opt.client.emit('end');
127
-
140
+
128
141
  process.exit(0);
129
142
  }
130
143
  } else {
131
144
  if ( typeof(error) != 'undefined') {
132
145
  process.exit(1);
133
146
  }
134
-
147
+
135
148
  if (!opt.client.destroyed)
136
- opt.client.emit('end');
137
-
149
+ opt.client.emit('end');
150
+
138
151
  process.exit(0);
139
- }
152
+ }
140
153
  }
141
154
 
142
155
 
@@ -151,11 +164,13 @@ function Stop(opt, cmd) {
151
164
  , bundleDir = null
152
165
  , bundlesPath = null
153
166
  , bundleInit = null
167
+ , pkg = null
168
+ , path = null
154
169
  ;
155
170
 
156
171
  try {
157
172
  //This is mostly for dev.
158
- var pkg = requireJSON(_(root + '/manifest.json')).bundles;
173
+ pkg = requireJSON(_(root + '/manifest.json')).bundles;
159
174
 
160
175
  if ( typeof(pkg[bundle].version) == 'undefined' && typeof (pkg[bundle].tag) != 'undefined' ) {
161
176
  pkg[bundle].version = pkg[bundle].tag
@@ -163,7 +178,7 @@ function Stop(opt, cmd) {
163
178
  if (
164
179
  pkg[bundle] != 'undefined' && pkg[bundle]['src'] != 'undefined' && isDev
165
180
  ) {
166
- var path = pkg[bundle].src;
181
+ path = pkg[bundle].src;
167
182
 
168
183
  p = _(root + '/' + path);//path.replace('/' + bundle, '')
169
184
  d = _(root + '/' + path + '/index.js');
@@ -175,7 +190,7 @@ function Stop(opt, cmd) {
175
190
 
176
191
  } else {
177
192
  //Others releases.
178
- var path = 'releases/' + bundle + '/' + env + '/' + pkg[bundle].version;
193
+ path = 'releases/' + bundle + '/' + env + '/' + pkg[bundle].version;
179
194
  var version = pkg[bundle].version;
180
195
  p = _(root + '/' + path);//path.replace('/' + bundle, '')
181
196
  d = _(root + '/' + path + '/index.js');
@@ -195,7 +210,7 @@ function Stop(opt, cmd) {
195
210
  d = _(root + '/' + bundleDir + '/' + bundle + '/index.js');
196
211
  bundleInit = d;
197
212
  }
198
-
213
+
199
214
  // removing mounting point
200
215
  var coreEnv = getCoreEnv(bundle);
201
216
  new _(coreEnv.mountPath +'/'+ bundle, true).rmSync();
@@ -219,7 +234,7 @@ function Stop(opt, cmd) {
219
234
  })
220
235
  } else {
221
236
  //callback(new Error('[ ' + d + ' ] does not exists'))
222
- console.debug('[ ' + d + ' ] does not exists');
237
+ console.debug('[ ' + d + ' ] does not exists');
223
238
  callback(false)
224
239
  }
225
240
  }