@scandipwa/magento-scripts 2.0.3 → 2.0.4

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 (347) hide show
  1. package/.eslintrc +6 -1
  2. package/exec.js +75 -39
  3. package/index.js +87 -46
  4. package/lib/commands/cleanup.js +18 -21
  5. package/lib/commands/cli.js +138 -73
  6. package/lib/commands/execute.js +5 -5
  7. package/lib/commands/import-db.js +21 -24
  8. package/lib/commands/link.js +17 -20
  9. package/lib/commands/logs.js +91 -91
  10. package/lib/commands/start.js +229 -191
  11. package/lib/commands/status.js +64 -50
  12. package/lib/commands/stop.js +14 -11
  13. package/lib/config/check-configuration-file.js +33 -28
  14. package/lib/config/cma-config.js +4 -4
  15. package/lib/config/config.js +40 -18
  16. package/lib/config/dependencies-for-platforms.js +33 -3
  17. package/lib/config/docker.js +259 -157
  18. package/lib/config/get-magento-version-config.js +45 -38
  19. package/lib/config/get-port-config.js +30 -44
  20. package/lib/config/get-project-configuration.js +8 -8
  21. package/lib/config/index.js +51 -42
  22. package/lib/config/magento/required-php-extensions/index.js +33 -19
  23. package/lib/config/magento/required-php-extensions/magento-2.3.js +2 -2
  24. package/lib/config/magento/required-php-extensions/magento-2.4.js +2 -2
  25. package/lib/config/magento-config.js +4 -4
  26. package/lib/config/php-config.js +8 -6
  27. package/lib/config/port-config.js +62 -43
  28. package/lib/config/save-config.js +6 -6
  29. package/lib/config/scandipwa-versions.js +2 -2
  30. package/lib/config/services/composer/versions/composer-1.js +2 -2
  31. package/lib/config/services/composer/versions/composer-2.js +2 -2
  32. package/lib/config/services/composer/versions/index.js +1 -1
  33. package/lib/config/services/elasticsearch/base-repo.js +1 -1
  34. package/lib/config/services/elasticsearch/default-es-env.js +4 -1
  35. package/lib/config/services/elasticsearch/versions/elasticsearch-6.8.js +17 -14
  36. package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +4 -4
  37. package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +4 -4
  38. package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +4 -4
  39. package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +4 -4
  40. package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +4 -4
  41. package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +4 -4
  42. package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +4 -4
  43. package/lib/config/services/elasticsearch/versions/index.js +9 -9
  44. package/lib/config/services/maildev/index.js +5 -2
  45. package/lib/config/services/mariadb/versions/index.js +1 -1
  46. package/lib/config/services/mariadb/versions/mariadb-10.2.js +3 -3
  47. package/lib/config/services/mariadb/versions/mariadb-10.3.js +3 -3
  48. package/lib/config/services/mariadb/versions/mariadb-10.4.js +3 -3
  49. package/lib/config/services/nginx/versions/index.js +1 -1
  50. package/lib/config/services/nginx/versions/nginx-1.18.js +5 -4
  51. package/lib/config/services/php/base-repo.js +1 -1
  52. package/lib/config/services/php/extensions/apcu.js +3 -3
  53. package/lib/config/services/php/extensions/bcmath.js +2 -2
  54. package/lib/config/services/php/extensions/curl.js +3 -6
  55. package/lib/config/services/php/extensions/gd.js +4 -3
  56. package/lib/config/services/php/extensions/index.js +9 -8
  57. package/lib/config/services/php/extensions/intl.js +3 -5
  58. package/lib/config/services/php/extensions/opcache.js +3 -5
  59. package/lib/config/services/php/extensions/pdo_mysql.js +2 -2
  60. package/lib/config/services/php/extensions/soap.js +3 -5
  61. package/lib/config/services/php/extensions/sodium.js +3 -5
  62. package/lib/config/services/php/extensions/xdebug.js +5 -3
  63. package/lib/config/services/php/extensions/xsl.js +3 -5
  64. package/lib/config/services/php/extensions/zip.js +3 -5
  65. package/lib/config/services/php/versions/index.js +1 -1
  66. package/lib/config/services/php/versions/php-7.2.js +13 -9
  67. package/lib/config/services/php/versions/php-7.3.js +13 -9
  68. package/lib/config/services/php/versions/php-7.4.js +13 -9
  69. package/lib/config/services/php/versions/php-8.1.js +13 -9
  70. package/lib/config/services/redis/index.js +1 -1
  71. package/lib/config/services/redis/redis-5.0.js +2 -2
  72. package/lib/config/services/redis/redis-6.0.js +2 -2
  73. package/lib/config/services/redis/redis-6.2.js +2 -2
  74. package/lib/config/services/ssl-terminator/index.js +6 -5
  75. package/lib/config/services/varnish/index.js +1 -1
  76. package/lib/config/services/varnish/varnish-6-0.js +7 -5
  77. package/lib/config/services/varnish/varnish-6-6.js +7 -5
  78. package/lib/config/services/varnish/varnish-7-0.js +7 -5
  79. package/lib/config/system-config.js +55 -32
  80. package/lib/config/templates/mariadb.template.cnf +2 -0
  81. package/lib/config/versions/index.js +48 -27
  82. package/lib/config/versions/magento-2.2.10.js +22 -15
  83. package/lib/config/versions/magento-2.3.0.js +22 -15
  84. package/lib/config/versions/magento-2.3.1.js +22 -15
  85. package/lib/config/versions/magento-2.3.2-p1.js +22 -15
  86. package/lib/config/versions/magento-2.3.2-p2.js +22 -15
  87. package/lib/config/versions/magento-2.3.2.js +22 -15
  88. package/lib/config/versions/magento-2.3.3-p1.js +22 -15
  89. package/lib/config/versions/magento-2.3.3.js +22 -15
  90. package/lib/config/versions/magento-2.3.4-p1.js +22 -15
  91. package/lib/config/versions/magento-2.3.4-p2.js +22 -15
  92. package/lib/config/versions/magento-2.3.4.js +22 -15
  93. package/lib/config/versions/magento-2.3.5-p1.js +22 -15
  94. package/lib/config/versions/magento-2.3.5-p2.js +22 -15
  95. package/lib/config/versions/magento-2.3.5.js +27 -15
  96. package/lib/config/versions/magento-2.3.6-p1.js +22 -15
  97. package/lib/config/versions/magento-2.3.6.js +22 -15
  98. package/lib/config/versions/magento-2.3.7-p1.js +22 -15
  99. package/lib/config/versions/magento-2.3.7-p2.js +22 -15
  100. package/lib/config/versions/magento-2.3.7-p3.js +22 -15
  101. package/lib/config/versions/magento-2.3.7-p4.js +22 -15
  102. package/lib/config/versions/magento-2.3.7.js +22 -15
  103. package/lib/config/versions/magento-2.4.0-p1.js +22 -15
  104. package/lib/config/versions/magento-2.4.0.js +22 -15
  105. package/lib/config/versions/magento-2.4.1-p1.js +23 -16
  106. package/lib/config/versions/magento-2.4.1.js +23 -16
  107. package/lib/config/versions/magento-2.4.2-p1.js +23 -16
  108. package/lib/config/versions/magento-2.4.2-p2.js +23 -16
  109. package/lib/config/versions/magento-2.4.2.js +23 -16
  110. package/lib/config/versions/magento-2.4.3-p1.js +23 -16
  111. package/lib/config/versions/magento-2.4.3-p2.js +23 -16
  112. package/lib/config/versions/magento-2.4.3-p3.js +23 -16
  113. package/lib/config/versions/magento-2.4.3.js +23 -16
  114. package/lib/config/versions/magento-2.4.4-p1.js +23 -16
  115. package/lib/config/versions/magento-2.4.4-p2.js +23 -16
  116. package/lib/config/versions/magento-2.4.4.js +23 -16
  117. package/lib/config/versions/magento-2.4.5-p1.js +23 -16
  118. package/lib/config/versions/magento-2.4.5.js +23 -17
  119. package/lib/config/xml-parser.js +21 -20
  120. package/lib/errors/known-error.js +8 -6
  121. package/lib/errors/unknown-error.js +8 -6
  122. package/lib/tasks/cache/create-cache-folder.js +10 -10
  123. package/lib/tasks/cache/index.js +1 -1
  124. package/lib/tasks/cache/remove-cache-folder.js +9 -9
  125. package/lib/tasks/cleanup.js +22 -24
  126. package/lib/tasks/cli/create-bashrc-config.js +19 -11
  127. package/lib/tasks/cli/index.js +10 -13
  128. package/lib/tasks/composer/index.js +20 -15
  129. package/lib/tasks/composer/local-auth-json.js +32 -18
  130. package/lib/tasks/database/connect-to-database.js +71 -51
  131. package/lib/tasks/database/create-magento-database.js +7 -7
  132. package/lib/tasks/database/create-magento-user.js +33 -20
  133. package/lib/tasks/database/default-magento-database.js +1 -1
  134. package/lib/tasks/database/default-magento-user.js +2 -2
  135. package/lib/tasks/database/dump-theme-config.js +16 -12
  136. package/lib/tasks/database/fix-db.js +62 -52
  137. package/lib/tasks/database/import-dump-to-database.js +122 -85
  138. package/lib/tasks/database/import-remote-db/index.js +16 -18
  139. package/lib/tasks/database/import-remote-db/ssh/database-dump-command.js +2 -2
  140. package/lib/tasks/database/import-remote-db/ssh/index.js +34 -35
  141. package/lib/tasks/database/import-remote-db/ssh/readymage.js +41 -38
  142. package/lib/tasks/database/import-remote-db/ssh/regular-server.js +44 -46
  143. package/lib/tasks/database/index.js +1 -1
  144. package/lib/tasks/database/magento-tables.js +3 -3
  145. package/lib/tasks/database/restore-theme-config.js +26 -19
  146. package/lib/tasks/docker/api.d.ts +1 -1
  147. package/lib/tasks/docker/api.js +31 -33
  148. package/lib/tasks/docker/containers/container-api.d.ts +49 -14
  149. package/lib/tasks/docker/containers/container-api.js +112 -83
  150. package/lib/tasks/docker/containers/index.js +3 -3
  151. package/lib/tasks/docker/containers/tasks.js +171 -99
  152. package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +34 -25
  153. package/lib/tasks/docker/convert-legacy-volumes.js +91 -55
  154. package/lib/tasks/docker/convert-mysql-to-mariadb.js +178 -147
  155. package/lib/tasks/docker/image/image-api.d.ts +2 -3
  156. package/lib/tasks/docker/image/image-api.js +41 -34
  157. package/lib/tasks/docker/image/index.js +2 -2
  158. package/lib/tasks/docker/index.js +26 -21
  159. package/lib/tasks/docker/network/index.js +3 -3
  160. package/lib/tasks/docker/network/network-api.d.ts +11 -8
  161. package/lib/tasks/docker/network/network-api.js +53 -61
  162. package/lib/tasks/docker/network/tasks.js +41 -31
  163. package/lib/tasks/docker/project-image-builder.js +175 -92
  164. package/lib/tasks/docker/system/index.js +2 -2
  165. package/lib/tasks/docker/system/system-api.d.ts +2 -2
  166. package/lib/tasks/docker/system/system-api.js +16 -19
  167. package/lib/tasks/docker/volume/index.js +3 -3
  168. package/lib/tasks/docker/volume/tasks.js +63 -46
  169. package/lib/tasks/docker/volume/volume-api.d.ts +8 -5
  170. package/lib/tasks/docker/volume/volume-api.js +59 -76
  171. package/lib/tasks/execute.js +91 -55
  172. package/lib/tasks/file-system/create-mariadb-config.js +18 -10
  173. package/lib/tasks/file-system/create-nginx-config.js +18 -19
  174. package/lib/tasks/file-system/create-php-config.js +12 -8
  175. package/lib/tasks/file-system/create-php-debug-config.js +23 -18
  176. package/lib/tasks/file-system/create-php-fpm-config.js +14 -9
  177. package/lib/tasks/file-system/create-phpstorm-config/database-config.js +144 -112
  178. package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +69 -45
  179. package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +69 -70
  180. package/lib/tasks/file-system/create-phpstorm-config/index.js +28 -24
  181. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +9 -9
  182. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +23 -23
  183. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +22 -19
  184. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +26 -16
  185. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +14 -15
  186. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +43 -34
  187. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/inspection-tools-config.js +14 -6
  188. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +9 -9
  189. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +53 -47
  190. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +41 -12
  191. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +33 -30
  192. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +35 -38
  193. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +14 -15
  194. package/lib/tasks/file-system/create-phpstorm-config/keys.js +10 -10
  195. package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +33 -25
  196. package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +28 -25
  197. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +53 -32
  198. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-config.js +7 -7
  199. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +37 -27
  200. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +53 -31
  201. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +42 -30
  202. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/index.js +33 -20
  203. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/php-docker-settings-config.js +3 -3
  204. package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/setup-php-docker-container-settings-config.js +27 -16
  205. package/lib/tasks/file-system/create-phpstorm-config/setup-xml-structure.js +14 -13
  206. package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +52 -34
  207. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +41 -33
  208. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +39 -27
  209. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +34 -30
  210. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/mess-detector-project-configuration-config.js +32 -22
  211. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-code-sniffer-project-configuration-config.js +32 -22
  212. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-cs-fixer-project-configuration-config.js +32 -22
  213. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +42 -31
  214. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +45 -33
  215. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-stan-project-configuration-config.js.js +32 -22
  216. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +22 -19
  217. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +35 -21
  218. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/psalm-project-configuration-config.js.js +31 -22
  219. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +38 -28
  220. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/workspace-config.js +5 -5
  221. package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +3 -2
  222. package/lib/tasks/file-system/create-ssl-terminator-config.js +46 -34
  223. package/lib/tasks/file-system/create-varnish-config.js +20 -23
  224. package/lib/tasks/file-system/create-vscode-config.js +66 -49
  225. package/lib/tasks/file-system/index.js +29 -25
  226. package/lib/tasks/import-dump.js +54 -45
  227. package/lib/tasks/link.js +24 -23
  228. package/lib/tasks/magento/enable-magento-composer-plugins.js +213 -149
  229. package/lib/tasks/magento/index.js +1 -1
  230. package/lib/tasks/magento/install-magento-project.js +158 -97
  231. package/lib/tasks/magento/remove-magento.js +30 -24
  232. package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +27 -15
  233. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +23 -10
  234. package/lib/tasks/magento/setup-magento/create-admin.js +21 -13
  235. package/lib/tasks/magento/setup-magento/delete-admin-users.js +5 -5
  236. package/lib/tasks/magento/setup-magento/delete-customers.js +16 -10
  237. package/lib/tasks/magento/setup-magento/delete-orders.js +16 -10
  238. package/lib/tasks/magento/setup-magento/disable-2fa.js +11 -8
  239. package/lib/tasks/magento/setup-magento/disable-maintenance-mode.js +7 -7
  240. package/lib/tasks/magento/setup-magento/disable-page-builder.js +5 -4
  241. package/lib/tasks/magento/setup-magento/flush-redis-config.js +14 -8
  242. package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +21 -17
  243. package/lib/tasks/magento/setup-magento/index-products.js +4 -6
  244. package/lib/tasks/magento/setup-magento/index.js +54 -47
  245. package/lib/tasks/magento/setup-magento/install-magento.js +112 -79
  246. package/lib/tasks/magento/setup-magento/migrate-database.js +115 -96
  247. package/lib/tasks/magento/setup-magento/set-base-url.js +35 -21
  248. package/lib/tasks/magento/setup-magento/set-deployment-mode.js +15 -13
  249. package/lib/tasks/magento/setup-magento/set-mail-config.js +20 -14
  250. package/lib/tasks/magento/setup-magento/set-url-rewrite.js +13 -9
  251. package/lib/tasks/magento/setup-magento/upgrade-magento.js +30 -22
  252. package/lib/tasks/magento/setup-magento/urn-highlighter.js +11 -11
  253. package/lib/tasks/magento/setup-magento/varnish-config.js +42 -32
  254. package/lib/tasks/magento/setup-magento/waiting-for-redis.js +6 -8
  255. package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +108 -65
  256. package/lib/tasks/magento/uninstall-magento.js +19 -16
  257. package/lib/tasks/php/php-container.d.ts +19 -0
  258. package/lib/tasks/php/php-container.js +50 -46
  259. package/lib/tasks/php/update-env-php.js +50 -30
  260. package/lib/tasks/project-config/index.js +12 -8
  261. package/lib/tasks/requirements/composer-credentials.js +215 -112
  262. package/lib/tasks/requirements/docker/context.js +49 -37
  263. package/lib/tasks/requirements/docker/index.js +123 -89
  264. package/lib/tasks/requirements/docker/install-on-mac.js +21 -14
  265. package/lib/tasks/requirements/docker/install.js +63 -52
  266. package/lib/tasks/requirements/docker/performance.js +40 -24
  267. package/lib/tasks/requirements/docker/permissions.js +27 -17
  268. package/lib/tasks/requirements/docker/running-status.js +79 -66
  269. package/lib/tasks/requirements/docker/version.js +14 -11
  270. package/lib/tasks/requirements/index.js +33 -29
  271. package/lib/tasks/requirements/node-version.js +8 -8
  272. package/lib/tasks/requirements/php-version.js +14 -11
  273. package/lib/tasks/requirements/platform.js +42 -26
  274. package/lib/tasks/requirements/rosetta.js +15 -12
  275. package/lib/tasks/start.js +172 -148
  276. package/lib/tasks/status/index.js +155 -88
  277. package/lib/tasks/stop.js +22 -18
  278. package/lib/tasks/theme/build-theme.js +50 -33
  279. package/lib/tasks/theme/install-theme.js +31 -18
  280. package/lib/tasks/theme/link-theme.js +27 -21
  281. package/lib/tasks/theme/retrieve-theme-data.js +24 -18
  282. package/lib/tasks/theme/setup-themes.js +87 -59
  283. package/lib/tasks/theme/symlink-theme.js +44 -22
  284. package/lib/util/CSA-theme.js +23 -21
  285. package/lib/util/analytics.js +130 -75
  286. package/lib/util/arch.js +22 -18
  287. package/lib/util/clean-object.js +15 -10
  288. package/lib/util/config-file-validator.js +63 -54
  289. package/lib/util/config-php-json.js +34 -16
  290. package/lib/util/connection-string.js +41 -27
  291. package/lib/util/console-block.js +112 -65
  292. package/lib/util/database.js +56 -33
  293. package/lib/util/deepmerge.d.ts +1 -1
  294. package/lib/util/deepmerge.js +19 -28
  295. package/lib/util/dockerfile-builder/build-instructions.js +159 -143
  296. package/lib/util/dockerfile-builder/index.js +47 -73
  297. package/lib/util/dockerfile-builder/types.d.ts +2 -1
  298. package/lib/util/download-file.js +28 -16
  299. package/lib/util/env-php-json.js +42 -16
  300. package/lib/util/exec-async-command.d.ts +9 -9
  301. package/lib/util/exec-async-command.js +82 -59
  302. package/lib/util/exec-async.d.ts +2 -0
  303. package/lib/util/exec-async.js +12 -5
  304. package/lib/util/execute-in-container.js +22 -27
  305. package/lib/util/execute-sudo-command.js +11 -15
  306. package/lib/util/get-brew-bin-path.js +27 -23
  307. package/lib/util/get-installed-magento-version.js +22 -16
  308. package/lib/util/get-jsonfile-data.js +14 -9
  309. package/lib/util/install-dependencies-task.js +53 -41
  310. package/lib/util/instance-metadata.js +44 -29
  311. package/lib/util/ip.js +16 -12
  312. package/lib/util/is-running-root.js +6 -3
  313. package/lib/util/is-wsl.js +10 -10
  314. package/lib/util/macos-version.js +12 -11
  315. package/lib/util/magento-task.js +14 -9
  316. package/lib/util/match-filesystem.js +22 -16
  317. package/lib/util/move-file.js +40 -25
  318. package/lib/util/nginx-logs-parser.js +50 -39
  319. package/lib/util/open-browser.js +8 -5
  320. package/lib/util/os-platform.js +40 -32
  321. package/lib/util/path-exists-sync.js +10 -6
  322. package/lib/util/path-exists.js +6 -6
  323. package/lib/util/php-task.js +11 -10
  324. package/lib/util/portscanner.js +97 -85
  325. package/lib/util/prefix.js +31 -22
  326. package/lib/util/resolve-configuration-with-overrides.js +30 -15
  327. package/lib/util/rmdir-safe.js +15 -11
  328. package/lib/util/run-composer.js +16 -16
  329. package/lib/util/run-container-image.js +9 -4
  330. package/lib/util/run-magento.js +16 -17
  331. package/lib/util/run-php.js +16 -21
  332. package/lib/util/safe-regex-extract.js +8 -12
  333. package/lib/util/set-config.js +24 -15
  334. package/lib/util/sleep.js +7 -2
  335. package/lib/util/systemctl.js +62 -44
  336. package/lib/util/wait-for-it.js +42 -33
  337. package/lib/util/wait-for-logs.js +42 -35
  338. package/lib/util/xdg-open-exists.js +19 -19
  339. package/package.json +7 -3
  340. package/tsconfig.json +24 -0
  341. package/typings/context.d.ts +76 -34
  342. package/typings/index.d.ts +44 -19
  343. package/typings/override.d.ts +14 -0
  344. package/typings/phpstorm.d.ts +19 -19
  345. package/.prettierrc +0 -3
  346. package/lib/util/get-php-for-phpbrew.js +0 -30
  347. package/lib/util/request.js +0 -0
package/.eslintrc CHANGED
@@ -1,5 +1,10 @@
1
1
  {
2
2
  "globals": {
3
- "verbose":true
3
+ "verbose":true,
4
+ "NodeJS": true,
5
+ "BufferEncoding": true
6
+ },
7
+ "env": {
8
+ "node": true
4
9
  }
5
10
  }
package/exec.js CHANGED
@@ -1,71 +1,107 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const getLatestVersion = require('@scandipwa/scandipwa-dev-utils/latest-version');
4
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
5
- const semver = require('semver');
6
- const isInstalledGlobally = require('is-installed-globally');
7
- const isRunningRoot = require('./lib/util/is-running-root');
8
- const { executeTask } = require('./lib/tasks/execute');
3
+ const getLatestVersion = require('@scandipwa/scandipwa-dev-utils/latest-version')
4
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
5
+ const semver = require('semver')
6
+ const isInstalledGlobally = require('is-installed-globally')
7
+ const isRunningRoot = require('./lib/util/is-running-root')
8
+ const { executeTask } = require('./lib/tasks/execute')
9
9
 
10
10
  if (isRunningRoot()) {
11
- logger.error('Root privileges detected!');
11
+ logger.error('Root privileges detected!')
12
12
  console.log(`
13
- We detected that you are running ${ logger.style.misc('magento-scripts') } as root user.
14
- We cannot allow you to run ${ logger.style.misc('magento-scripts') } with root privileges, this will only cause more problems.
13
+ We detected that you are running ${logger.style.misc(
14
+ 'magento-scripts'
15
+ )} as root user.
16
+ We cannot allow you to run ${logger.style.misc(
17
+ 'magento-scripts'
18
+ )} with root privileges, this will only cause more problems.
15
19
 
16
- If you are experiencing problems with ${ logger.style.misc('Docker') } or ${ logger.style.misc('Magento') } setup, running ${ logger.style.misc('magento-scripts') } as root will not solve those problems.
17
- `);
20
+ If you are experiencing problems with ${logger.style.misc(
21
+ 'Docker'
22
+ )} or ${logger.style.misc('Magento')} setup, running ${logger.style.misc(
23
+ 'magento-scripts'
24
+ )} as root will not solve those problems.
25
+ `)
18
26
 
19
- process.exit(1);
27
+ process.exit(1)
20
28
  }
21
29
 
22
- process.title = 'magento-scripts';
30
+ process.title = 'magento-scripts'
23
31
 
32
+ /**
33
+ * @param {String} latestVersion
34
+ * @param {String} currentVersion
35
+ * @returns {Boolean}
36
+ */
24
37
  const newVersionIsAPatch = (latestVersion, currentVersion) => {
25
- const latestVersionParsed = semver.parse(latestVersion);
26
- const currentVersionParsed = semver.parse(currentVersion);
38
+ const latestVersionParsed = semver.parse(latestVersion)
39
+ const currentVersionParsed = semver.parse(currentVersion)
27
40
 
28
- return latestVersionParsed.major === currentVersionParsed.major
29
- && latestVersionParsed.minor === currentVersionParsed.minor
30
- && latestVersionParsed.patch !== currentVersionParsed.patch;
31
- };
41
+ return Boolean(
42
+ latestVersionParsed &&
43
+ currentVersionParsed &&
44
+ latestVersionParsed.major === currentVersionParsed.major &&
45
+ latestVersionParsed.minor === currentVersionParsed.minor &&
46
+ latestVersionParsed.patch !== currentVersionParsed.patch
47
+ )
48
+ }
32
49
 
33
- (async () => {
34
- const { version: currentVersion, name } = require('./package.json');
50
+ ;(async () => {
51
+ const { version: currentVersion, name } = require('./package.json')
35
52
  try {
36
- const latestVersion = await getLatestVersion(name);
53
+ const latestVersion = await getLatestVersion(name)
37
54
 
38
55
  if (semver.gt(latestVersion, currentVersion)) {
39
- const isNewVersionAPath = newVersionIsAPatch(latestVersion, currentVersion);
56
+ const isNewVersionAPath = newVersionIsAPatch(
57
+ latestVersion,
58
+ currentVersion
59
+ )
40
60
 
41
- let message = [];
61
+ let message = []
42
62
 
43
63
  if (isNewVersionAPath) {
44
64
  message = [
45
- `A patch for ${ logger.style.misc(name) } is available!`,
46
- `We recommend to update to latest version ${ logger.style.misc(latestVersion) }!`,
47
- `-> ${ logger.style.command(`npm i ${ isInstalledGlobally ? '-g ' : '' }${ name }@${ latestVersion }`) }`
48
- ];
65
+ `A patch for ${logger.style.misc(name)} is available!`,
66
+ `We recommend to update to latest version ${logger.style.misc(
67
+ latestVersion
68
+ )}!`,
69
+ `-> ${logger.style.command(
70
+ `npm i ${
71
+ isInstalledGlobally ? '-g ' : ''
72
+ }${name}@${latestVersion}`
73
+ )}`
74
+ ]
49
75
  } else {
50
76
  message = [
51
- `${ isInstalledGlobally ? 'Global module' : 'Module' } ${ logger.style.misc(name) } (${currentVersion}) is out-dated.`,
52
- `Please upgrade it to latest version ${ logger.style.misc(latestVersion) }.`,
53
- `You can do it by running the following command: ${ logger.style.command(`npm i ${ isInstalledGlobally ? '-g ' : '' }${ name }@${ latestVersion }`) }.`
54
- ];
77
+ `${
78
+ isInstalledGlobally ? 'Global module' : 'Module'
79
+ } ${logger.style.misc(
80
+ name
81
+ )} (${currentVersion}) is out-dated.`,
82
+ `Please upgrade it to latest version ${logger.style.misc(
83
+ latestVersion
84
+ )}.`,
85
+ `You can do it by running the following command: ${logger.style.command(
86
+ `npm i ${
87
+ isInstalledGlobally ? '-g ' : ''
88
+ }${name}@${latestVersion}`
89
+ )}.`
90
+ ]
55
91
  }
56
92
 
57
- process.isOutOfDateVersion = true;
58
- process.isOutOfDateVersionMessage = message;
93
+ process.isOutOfDateVersion = true
94
+ process.isOutOfDateVersionMessage = message
59
95
  }
60
96
  } catch (e) {
61
- logger.warn(`Package ${ logger.style.misc(name) } is not yet published.`);
62
- logger.log(); // add empty line
97
+ logger.warn(`Package ${logger.style.misc(name)} is not yet published.`)
98
+ logger.log() // add empty line
63
99
  }
64
100
 
65
- const [containername, ...commands] = process.argv.slice(2);
101
+ const [containername, ...commands] = process.argv.slice(2)
66
102
 
67
103
  return executeTask({
68
104
  containername,
69
105
  commands
70
- });
71
- })();
106
+ })
107
+ })()
package/index.js CHANGED
@@ -1,22 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const yargs = require('yargs');
4
- const getLatestVersion = require('@scandipwa/scandipwa-dev-utils/latest-version');
5
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
6
- const semver = require('semver');
7
- const isInstalledGlobally = require('is-installed-globally');
8
- const isRunningRoot = require('./lib/util/is-running-root');
3
+ const yargs = require('yargs')
4
+ const getLatestVersion = require('@scandipwa/scandipwa-dev-utils/latest-version')
5
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
6
+ const semver = require('semver')
7
+ const isInstalledGlobally = require('is-installed-globally')
8
+ const isRunningRoot = require('./lib/util/is-running-root')
9
9
 
10
10
  if (isRunningRoot()) {
11
- logger.error('Root privileges detected!');
11
+ logger.error('Root privileges detected!')
12
12
  console.log(`
13
- We detected that you are running ${ logger.style.misc('magento-scripts') } as root user.
14
- We cannot allow you to run ${ logger.style.misc('magento-scripts') } with root privileges, this will only cause more problems.
15
-
16
- If you are experiencing problems with ${ logger.style.misc('Docker') } or ${ logger.style.misc('Magento') } setup, running ${ logger.style.misc('magento-scripts') } as root will not solve those problems.
17
- `);
18
-
19
- process.exit(1);
13
+ We detected that you are running ${logger.style.misc(
14
+ 'magento-scripts'
15
+ )} as root user.
16
+ We cannot allow you to run ${logger.style.misc(
17
+ 'magento-scripts'
18
+ )} with root privileges, this will only cause more problems.
19
+
20
+ If you are experiencing problems with ${logger.style.misc(
21
+ 'Docker'
22
+ )} or ${logger.style.misc('Magento')} setup, running ${logger.style.misc(
23
+ 'magento-scripts'
24
+ )} as root will not solve those problems.
25
+ `)
26
+
27
+ process.exit(1)
20
28
  }
21
29
 
22
30
  const commands = [
@@ -29,61 +37,94 @@ const commands = [
29
37
  require('./lib/commands/status'),
30
38
  require('./lib/commands/execute'),
31
39
  require('./lib/commands/import-db')
32
- ];
40
+ ]
33
41
 
34
- process.title = 'magento-scripts';
42
+ process.title = 'magento-scripts'
35
43
 
44
+ /**
45
+ * @param {string} latestVersion
46
+ * @param {string} currentVersion
47
+ */
36
48
  const newVersionIsAPatch = (latestVersion, currentVersion) => {
37
- const latestVersionParsed = semver.parse(latestVersion);
38
- const currentVersionParsed = semver.parse(currentVersion);
49
+ const latestVersionParsed = semver.parse(latestVersion)
50
+ const currentVersionParsed = semver.parse(currentVersion)
39
51
 
40
- return latestVersionParsed.major === currentVersionParsed.major
41
- && latestVersionParsed.minor === currentVersionParsed.minor
42
- && latestVersionParsed.patch !== currentVersionParsed.patch;
43
- };
52
+ if (!latestVersionParsed || !currentVersionParsed) {
53
+ return false
54
+ }
55
+
56
+ return (
57
+ latestVersionParsed.major === currentVersionParsed.major &&
58
+ latestVersionParsed.minor === currentVersionParsed.minor &&
59
+ latestVersionParsed.patch !== currentVersionParsed.patch
60
+ )
61
+ }
44
62
 
45
- (async () => {
46
- const { version: currentVersion, name } = require('./package.json');
63
+ ;(async () => {
64
+ const { version: currentVersion, name } = require('./package.json')
47
65
  try {
48
- const latestVersion = await getLatestVersion(name);
66
+ const latestVersion = await getLatestVersion(name)
49
67
 
50
68
  if (semver.gt(latestVersion, currentVersion)) {
51
- const isNewVersionAPath = newVersionIsAPatch(latestVersion, currentVersion);
69
+ const isNewVersionAPath = newVersionIsAPatch(
70
+ latestVersion,
71
+ currentVersion
72
+ )
52
73
 
53
- let message = [];
74
+ let message = []
54
75
 
55
76
  if (isNewVersionAPath) {
56
77
  message = [
57
- `A patch for ${ logger.style.misc(name) } is available!`,
58
- `We recommend to update to latest version ${ logger.style.misc(latestVersion) }!`,
59
- `-> ${ logger.style.command(`npm i ${ isInstalledGlobally ? '-g ' : '' }${ name }@${ latestVersion }`) }`
60
- ];
78
+ `A patch for ${logger.style.misc(name)} is available!`,
79
+ `We recommend to update to latest version ${logger.style.misc(
80
+ latestVersion
81
+ )}!`,
82
+ `-> ${logger.style.command(
83
+ `npm i ${
84
+ isInstalledGlobally ? '-g ' : ''
85
+ }${name}@${latestVersion}`
86
+ )}`
87
+ ]
61
88
  } else {
62
89
  message = [
63
- `${ isInstalledGlobally ? 'Global module' : 'Module' } ${ logger.style.misc(name) } (${currentVersion}) is out-dated.`,
64
- `Please upgrade it to latest version ${ logger.style.misc(latestVersion) }.`,
65
- `You can do it by running the following command: ${ logger.style.command(`npm i ${ isInstalledGlobally ? '-g ' : '' }${ name }@${ latestVersion }`) }.`
66
- ];
90
+ `${
91
+ isInstalledGlobally ? 'Global module' : 'Module'
92
+ } ${logger.style.misc(
93
+ name
94
+ )} (${currentVersion}) is out-dated.`,
95
+ `Please upgrade it to latest version ${logger.style.misc(
96
+ latestVersion
97
+ )}.`,
98
+ `You can do it by running the following command: ${logger.style.command(
99
+ `npm i ${
100
+ isInstalledGlobally ? '-g ' : ''
101
+ }${name}@${latestVersion}`
102
+ )}.`
103
+ ]
67
104
  }
68
105
 
69
- const doNotLogOutOfDateCommands = ['start'];
106
+ const doNotLogOutOfDateCommands = ['start']
70
107
 
71
- if (!yargs.argv._.some((arg) => doNotLogOutOfDateCommands.includes(arg))) {
72
- logger.warn(...message);
108
+ if (
109
+ !yargs.argv._.some((arg) =>
110
+ doNotLogOutOfDateCommands.includes(arg)
111
+ )
112
+ ) {
113
+ logger.warn(...message)
73
114
  }
74
- process.isOutOfDateVersion = true;
75
- process.isOutOfDateVersionMessage = message;
115
+ process.isOutOfDateVersion = true
116
+ process.isOutOfDateVersionMessage = message
76
117
  }
77
118
  } catch (e) {
78
- logger.warn(`Package ${ logger.style.misc(name) } is not yet published.`);
79
- logger.log(); // add empty line
119
+ logger.warn(`Package ${logger.style.misc(name)} is not yet published.`)
120
+ logger.log() // add empty line
80
121
  }
81
122
 
82
- yargs.scriptName('magento-scripts');
123
+ yargs.scriptName('magento-scripts')
83
124
 
84
125
  // Initialize program commands
85
- commands.forEach((command) => command(yargs));
126
+ commands.forEach((command) => command(yargs))
86
127
 
87
128
  // eslint-disable-next-line no-unused-expressions
88
- yargs.argv;
89
- })();
129
+ yargs.argv
130
+ })()
@@ -1,6 +1,6 @@
1
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
2
- const { Listr } = require('listr2');
3
- const cleanup = require('../tasks/cleanup');
1
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
2
+ const { Listr } = require('listr2')
3
+ const cleanup = require('../tasks/cleanup')
4
4
 
5
5
  /**
6
6
  * @param {import('yargs')} yargs
@@ -9,28 +9,25 @@ module.exports = (yargs) => {
9
9
  yargs.command(
10
10
  'cleanup',
11
11
  'Cleanup project folder',
12
- (yargs) => yargs.option(
13
- 'force',
14
- {
12
+ (yargs) =>
13
+ yargs.option('force', {
15
14
  alias: 'f',
16
15
  describe: 'Force cleanup to remove app directory',
17
16
  type: 'boolean',
18
17
  default: false
19
- }
20
- ),
18
+ }),
21
19
  async (args) => {
22
- logger.warn('you should not use this command.');
23
- const tasks = new Listr(
24
- cleanup(),
25
- {
26
- concurrent: false,
27
- exitOnError: true,
28
- ctx: { force: args.force },
29
- rendererOptions: { collapse: false }
30
- }
31
- );
20
+ logger.warn('you should not use this command.')
21
+ const tasks = new Listr(cleanup(), {
22
+ concurrent: false,
23
+ exitOnError: true,
24
+ ctx: {
25
+ force: args.force
26
+ },
27
+ rendererOptions: { collapse: false }
28
+ })
32
29
 
33
- await tasks.run();
30
+ await tasks.run()
34
31
  }
35
- );
36
- };
32
+ )
33
+ }
@@ -1,89 +1,154 @@
1
- const { Listr } = require('listr2');
2
- const cli = require('../tasks/cli');
3
- const createBashrcConfigFile = require('../tasks/cli/create-bashrc-config');
4
- const getMagentoVersionConfig = require('../config/get-magento-version-config');
5
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
6
- const getProjectConfiguration = require('../config/get-project-configuration');
7
- const checkConfigurationFile = require('../config/check-configuration-file');
8
- const ConsoleBlock = require('../util/console-block');
9
- const { checkComposerCredentials } = require('../tasks/requirements/composer-credentials');
10
- const pkg = require('../../package.json');
1
+ const { Listr } = require('listr2')
2
+ const cli = require('../tasks/cli')
3
+ const createBashrcConfigFile = require('../tasks/cli/create-bashrc-config')
4
+ const getMagentoVersionConfig = require('../config/get-magento-version-config')
5
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
6
+ const getProjectConfiguration = require('../config/get-project-configuration')
7
+ const checkConfigurationFile = require('../config/check-configuration-file')
8
+ const ConsoleBlock = require('../util/console-block')
9
+ const {
10
+ checkComposerCredentials
11
+ } = require('../tasks/requirements/composer-credentials')
12
+ const pkg = require('../../package.json')
11
13
 
12
14
  /**
13
15
  * @param {import('yargs')} yargs
14
16
  */
15
17
  module.exports = (yargs) => {
16
- yargs.command('cli', 'Enter CLI (magento, php, composer).', () => {}, async () => {
17
- const tasks = new Listr([
18
- getMagentoVersionConfig(),
19
- checkConfigurationFile(),
20
- getProjectConfiguration(),
21
- createBashrcConfigFile(),
22
- checkComposerCredentials()
23
- ], {
24
- concurrent: false,
25
- exitOnError: true,
26
- ctx: {
27
- throwMagentoVersionMissing: true
28
- },
29
- rendererOptions: { collapse: false, clearOutput: true }
30
- });
18
+ yargs.command(
19
+ 'cli',
20
+ 'Enter CLI (magento, php, composer).',
21
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
22
+ () => {},
23
+ async () => {
24
+ const tasks = new Listr(
25
+ [
26
+ getMagentoVersionConfig(),
27
+ checkConfigurationFile(),
28
+ getProjectConfiguration(),
29
+ createBashrcConfigFile(),
30
+ checkComposerCredentials()
31
+ ],
32
+ {
33
+ concurrent: false,
34
+ exitOnError: true,
35
+ ctx: {
36
+ throwMagentoVersionMissing: true
37
+ },
38
+ rendererOptions: { collapse: false, clearOutput: true }
39
+ }
40
+ )
31
41
 
32
- let ctx;
33
- try {
34
- ctx = await tasks.run();
35
- } catch (e) {
36
- logger.error(e.message || e);
37
- process.exit(1);
38
- }
39
-
40
- const block = new ConsoleBlock();
42
+ let ctx
43
+ try {
44
+ ctx = await tasks.run()
45
+ } catch (e) {
46
+ logger.error(e.message || e)
47
+ process.exit(1)
48
+ }
41
49
 
42
- block
43
- .addHeader('Create Magento App CLI')
44
- .addEmptyLine()
45
- .addLine(`Magento version: ${logger.style.link(ctx.magentoVersion)}`)
46
- .addLine(`${logger.style.file('magento-scripts')} version: ${logger.style.link(pkg.version)}`)
47
- .addEmptyLine()
48
- .addLine(`Available aliases: ${logger.style.command('php')}, ${logger.style.command('magento')}, ${logger.style.command('composer')}`)
49
- .addLine(`Available shortcuts: magento -> ${logger.style.command('m')}, composer -> ${logger.style.command('c')}`)
50
- .addEmptyLine();
50
+ const block = new ConsoleBlock()
51
51
 
52
- block
53
- .addLine(`Execute into any service: ${logger.style.command('exec <service name>')}`)
54
- .addLine(`Execute into PHP container: ${logger.style.command('exec php')}`)
55
- .addEmptyLine();
52
+ block
53
+ .addHeader('Create Magento App CLI')
54
+ .addEmptyLine()
55
+ .addLine(
56
+ `Magento version: ${logger.style.link(ctx.magentoVersion)}`
57
+ )
58
+ .addLine(
59
+ `${logger.style.file(
60
+ 'magento-scripts'
61
+ )} version: ${logger.style.link(pkg.version)}`
62
+ )
63
+ .addEmptyLine()
64
+ .addLine(
65
+ `Available aliases: ${logger.style.command(
66
+ 'php'
67
+ )}, ${logger.style.command(
68
+ 'magento'
69
+ )}, ${logger.style.command('composer')}`
70
+ )
71
+ .addLine(
72
+ `Available shortcuts: magento -> ${logger.style.command(
73
+ 'm'
74
+ )}, composer -> ${logger.style.command('c')}`
75
+ )
76
+ .addEmptyLine()
56
77
 
57
- if (ctx.config.overridenConfiguration.configuration.varnish.enabled) {
58
- block.addLine(`Clear Varnish cache: ${logger.style.command('cvc')}`);
59
- }
78
+ block
79
+ .addLine(
80
+ `Execute into any service: ${logger.style.command(
81
+ 'exec <service name>'
82
+ )}`
83
+ )
84
+ .addLine(
85
+ `Execute into PHP container: ${logger.style.command(
86
+ 'exec php'
87
+ )}`
88
+ )
89
+ .addEmptyLine()
60
90
 
61
- block
62
- .addLine(`Clear Magento cache: ${logger.style.command('m c:c')}`)
63
- .addLine(`Magento setup upgrade: ${logger.style.command('m se:up')}`)
64
- .addLine(`Magento DI compile: ${logger.style.command('m s:d:c')}`)
65
- .addEmptyLine();
91
+ if (
92
+ ctx.config.overridenConfiguration.configuration.varnish.enabled
93
+ ) {
94
+ block.addLine(
95
+ `Clear Varnish cache: ${logger.style.command('cvc')}`
96
+ )
97
+ }
66
98
 
67
- block
68
- .addLine(`Clear Composer cache: ${logger.style.command('c cc')}`)
69
- .addEmptyLine();
99
+ block
100
+ .addLine(
101
+ `Clear Magento cache: ${logger.style.command('m c:c')}`
102
+ )
103
+ .addLine(
104
+ `Magento setup upgrade: ${logger.style.command('m se:up')}`
105
+ )
106
+ .addLine(
107
+ `Magento DI compile: ${logger.style.command('m s:d:c')}`
108
+ )
109
+ .addEmptyLine()
70
110
 
71
- block
72
- .addLine(`Connect to MariaDB server: ${logger.style.command('mariadb')}`)
73
- .addLine(`Connect to MariaDB server as root: ${logger.style.command('mariadbroot')}`)
74
- .addEmptyLine();
111
+ block
112
+ .addLine(
113
+ `Clear Composer cache: ${logger.style.command('c cc')}`
114
+ )
115
+ .addEmptyLine()
75
116
 
76
- if (ctx.debug) {
77
117
  block
78
- .addLine('Debug PHP in CLI:')
79
- .addLine('1. Start debugger in VSCode or PHPStorm')
80
- .addLine(`2. Go to PHP container: ${ logger.style.command('exec php') }`)
81
- .addLine(`3. Run CLI command with ${ logger.style.code('XDEBUG_SESSION=phpstorm') } environmental variable: ${ logger.style.command('XDEBUG_SESSION=phpstorm magento <command>') }`)
82
- .addLine('4. Enjoy');
83
- }
118
+ .addLine(
119
+ `Connect to MariaDB server: ${logger.style.command(
120
+ 'mariadb'
121
+ )}`
122
+ )
123
+ .addLine(
124
+ `Connect to MariaDB server as root: ${logger.style.command(
125
+ 'mariadbroot'
126
+ )}`
127
+ )
128
+ .addEmptyLine()
84
129
 
85
- block.log();
130
+ if (ctx.debug) {
131
+ block
132
+ .addLine('Debug PHP in CLI:')
133
+ .addLine('1. Start debugger in VSCode or PHPStorm')
134
+ .addLine(
135
+ `2. Go to PHP container: ${logger.style.command(
136
+ 'exec php'
137
+ )}`
138
+ )
139
+ .addLine(
140
+ `3. Run CLI command with ${logger.style.code(
141
+ 'XDEBUG_SESSION=phpstorm'
142
+ )} environmental variable: ${logger.style.command(
143
+ 'XDEBUG_SESSION=phpstorm magento <command>'
144
+ )}`
145
+ )
146
+ .addLine('4. Enjoy')
147
+ }
86
148
 
87
- return cli();
88
- });
89
- };
149
+ block.log()
150
+
151
+ return cli()
152
+ }
153
+ )
154
+ }
@@ -1,4 +1,4 @@
1
- const { executeTask } = require('../tasks/execute');
1
+ const { executeTask } = require('../tasks/execute')
2
2
 
3
3
  /**
4
4
  * @param {import('yargs')} yargs
@@ -16,10 +16,10 @@ Available containers:
16
16
  - redis
17
17
  - elasticsearch
18
18
  - varnish (if enabled)
19
- - sslTerminator`);
19
+ - sslTerminator`)
20
20
  },
21
21
  async (argv) => {
22
- await executeTask(argv);
22
+ await executeTask(argv)
23
23
  }
24
- );
25
- };
24
+ )
25
+ }