@scandipwa/magento-scripts 2.0.3 → 2.0.5

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 -160
  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 +5 -4
  47. package/lib/config/services/mariadb/versions/mariadb-10.3.js +5 -4
  48. package/lib/config/services/mariadb/versions/mariadb-10.4.js +5 -4
  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 +8 -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 +26 -11
  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 +39 -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 +15 -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 +74 -55
  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 +10 -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 +54 -20
  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
@@ -1,90 +1,126 @@
1
1
  /* eslint-disable no-param-reassign */
2
2
  /* eslint-disable max-len */
3
- const { stopServices } = require('./index');
4
- const { getBaseConfig, getConfigFromMagentoVersion } = require('../../config');
5
- const getDockerConfig = require('../../config/docker');
6
- const { execAsyncSpawn } = require('../../util/exec-async-command');
7
- const { folderName, legacyFolderName } = require('../../util/prefix');
8
- const { volumeApi } = require('./volume');
3
+ const { stopServices } = require('./index')
4
+ const { getBaseConfig, getConfigFromMagentoVersion } = require('../../config')
5
+ const getDockerConfig = require('../../config/docker')
6
+ const { execAsyncSpawn } = require('../../util/exec-async-command')
7
+ const { folderName, legacyFolderName } = require('../../util/prefix')
8
+ const { volumeApi } = require('./volume')
9
9
 
10
10
  /**
11
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
11
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
12
12
  */
13
13
  const convertLegacyVolumes = () => ({
14
14
  task: async (ctx, task) => {
15
- const { config: { overridenConfiguration } } = ctx;
16
- const newDockerConfig = await getDockerConfig(ctx, overridenConfiguration, getBaseConfig(process.cwd(), folderName));
15
+ const {
16
+ config: { overridenConfiguration }
17
+ } = ctx
18
+ const newDockerConfig = await getDockerConfig(
19
+ ctx,
20
+ overridenConfiguration,
21
+ getBaseConfig(process.cwd(), folderName)
22
+ )
17
23
 
18
- const newVolumeNames = Object.values(newDockerConfig.volumes).filter((v) => !v.opt).map(({ name }) => name);
24
+ const newVolumeNames = Object.values(newDockerConfig.volumes)
25
+ .filter((v) => !v.opt)
26
+ .map(({ name }) => name)
19
27
 
20
- const existingVolumes = await volumeApi.ls({ formatToJSON: true });
28
+ const existingVolumes = await volumeApi.ls({ formatToJSON: true })
21
29
 
22
30
  if (newVolumeNames.every((v) => existingVolumes.includes(v))) {
23
- return;
31
+ return
24
32
  }
25
33
 
26
- const legacyDockerConfig = await getDockerConfig(ctx, overridenConfiguration, getBaseConfig(process.cwd(), legacyFolderName));
27
- const legacyVolumeNames = Object.values(legacyDockerConfig.volumes).filter((v) => !v.opt).map(({ name }) => name);
34
+ const legacyDockerConfig = await getDockerConfig(
35
+ ctx,
36
+ overridenConfiguration,
37
+ getBaseConfig(process.cwd(), legacyFolderName)
38
+ )
39
+ const legacyVolumeNames = Object.values(legacyDockerConfig.volumes)
40
+ .filter((v) => !v.opt)
41
+ .map(({ name }) => name)
28
42
 
29
43
  if (
30
- newVolumeNames.every((name) => !existingVolumes.some((v) => v.Name === name))
31
- && legacyVolumeNames.every((name) => existingVolumes.some((v) => v.Name === name))
44
+ newVolumeNames.every(
45
+ (name) => !existingVolumes.some((v) => v.Name === name)
46
+ ) &&
47
+ legacyVolumeNames.every((name) =>
48
+ existingVolumes.some((v) => v.Name === name)
49
+ )
32
50
  ) {
33
51
  ctx.config = await getConfigFromMagentoVersion(ctx, {
34
52
  magentoVersion: ctx.magentoVersion,
35
53
  projectPath: process.cwd(),
36
54
  prefix: legacyFolderName
37
- });
55
+ })
38
56
 
39
- return task.newListr([
40
- stopServices(),
41
- {
42
- title: 'Migrating data from legacy volumes to new ones',
43
- task: async (subCtx, subTask) => {
44
- task.title = 'Converting old volumes to new ones, this will take some time...';
57
+ return task.newListr(
58
+ [
59
+ stopServices(),
60
+ {
61
+ title: 'Migrating data from legacy volumes to new ones',
62
+ task: async (subCtx, subTask) => {
63
+ task.title =
64
+ 'Converting old volumes to new ones, this will take some time...'
45
65
 
46
- for (const [volumeName, volumeConfig] of Object.entries(newDockerConfig.volumes)) {
47
- const legacyVolumeConfig = legacyDockerConfig.volumes[volumeName];
66
+ for (const [
67
+ volumeName,
68
+ volumeConfig
69
+ ] of Object.entries(newDockerConfig.volumes)) {
70
+ const legacyVolumeConfig =
71
+ legacyDockerConfig.volumes[volumeName]
48
72
 
49
- subTask.output = `Creating volume ${volumeConfig.name}...`;
50
- await volumeApi.create(volumeConfig);
51
- subTask.output = `Copying data from ${legacyVolumeConfig.name} to ${volumeConfig.name}...`;
52
- await execAsyncSpawn(
53
- `docker run --rm -v ${legacyVolumeConfig.name}:/from:ro -v ${volumeConfig.name}:/to alpine ash -c "cd /from; cp -av . /to"`, {
54
- callback: (t) => {
55
- task.output = t;
73
+ subTask.output = `Creating volume ${volumeConfig.name}...`
74
+ await volumeApi.create(volumeConfig)
75
+ subTask.output = `Copying data from ${legacyVolumeConfig.name} to ${volumeConfig.name}...`
76
+ await execAsyncSpawn(
77
+ `docker run --rm -v ${legacyVolumeConfig.name}:/from:ro -v ${volumeConfig.name}:/to alpine ash -c "cd /from; cp -av . /to"`,
78
+ {
79
+ callback: (t) => {
80
+ task.output = t
81
+ }
56
82
  }
57
- }
58
- );
59
- }
83
+ )
84
+ }
60
85
 
61
- subCtx.config = await getConfigFromMagentoVersion(ctx.magentoVersion, process.cwd());
86
+ subCtx.config = await getConfigFromMagentoVersion(
87
+ ctx.magentoVersion,
88
+ process.cwd()
89
+ )
62
90
 
63
- const doDelete = await subTask.prompt({
64
- type: 'Toggle',
65
- message: `Good news! We successfully moved your data from legacy volumes ${legacyVolumeNames.join(', ')} to new ones!
91
+ const doDelete = await subTask.prompt({
92
+ type: 'Toggle',
93
+ message: `Good news! We successfully moved your data from legacy volumes ${legacyVolumeNames.join(
94
+ ', '
95
+ )} to new ones!
66
96
  But we have one last thing to do.
67
- To free some space and avoid possible interference between docker volumes we strongly recommend you to delete legacy volumes ${legacyVolumeNames.join(', ')} now or when you are ready.
97
+ To free some space and avoid possible interference between docker volumes we strongly recommend you to delete legacy volumes ${legacyVolumeNames.join(
98
+ ', '
99
+ )} now or when you are ready.
68
100
  `,
69
- disabled: 'Delete later myself',
70
- enabled: 'Delete automatically now'
71
- });
101
+ disabled: 'Delete later myself',
102
+ enabled: 'Delete automatically now'
103
+ })
72
104
 
73
- if (doDelete) {
74
- await execAsyncSpawn(
75
- `docker volume rm ${legacyVolumeNames.join(' ')}`
76
- );
105
+ if (doDelete) {
106
+ await execAsyncSpawn(
107
+ `docker volume rm ${legacyVolumeNames.join(
108
+ ' '
109
+ )}`
110
+ )
111
+ }
112
+ },
113
+ options: {
114
+ bottomBar: 10
77
115
  }
78
- },
79
- options: {
80
- bottomBar: 10
81
116
  }
117
+ ],
118
+ {
119
+ concurrent: false
82
120
  }
83
- ], {
84
- concurrent: false
85
- });
121
+ )
86
122
  }
87
123
  }
88
- });
124
+ })
89
125
 
90
- module.exports = convertLegacyVolumes;
126
+ module.exports = convertLegacyVolumes
@@ -1,168 +1,192 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
4
- const { volumeApi, createVolumes } = require('./volume');
5
- const { execAsyncSpawn } = require('../../util/exec-async-command');
6
- const { containerApi, stopContainers, pullImages } = require('./containers');
7
- const { importDumpToDatabase, connectToDatabase } = require('../database');
8
- const getProjectConfiguration = require('../../config/get-project-configuration');
9
- const { getAvailablePorts, getCachedPorts } = require('../../config/get-port-config');
10
- const { saveConfiguration } = require('../../config/save-config');
11
- const { buildProjectImage, buildDebugProjectImage } = require('./project-image-builder');
12
- const checkPHPVersion = require('../requirements/php-version');
13
- const { getComposerVersionTask } = require('../composer');
14
- const { prepareFileSystem } = require('../file-system');
15
- const { installMagentoProject } = require('../magento');
16
- const enableMagentoComposerPlugins = require('../magento/enable-magento-composer-plugins');
17
- const { startServices } = require('./index');
18
- const dockerNetwork = require('./network');
19
- const KnownError = require('../../errors/known-error');
20
- const { createCacheFolder } = require('../cache');
21
- const { getSystemConfigTask } = require('../../config/system-config');
22
- const sleep = require('../../util/sleep');
23
- const { setProjectConfigTask } = require('../project-config');
1
+ const path = require('path')
2
+ const fs = require('fs')
3
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
4
+ const { volumeApi, createVolumes } = require('./volume')
5
+ const { execAsyncSpawn } = require('../../util/exec-async-command')
6
+ const { containerApi, stopContainers, pullImages } = require('./containers')
7
+ const { importDumpToDatabase, connectToDatabase } = require('../database')
8
+ const getProjectConfiguration = require('../../config/get-project-configuration')
9
+ const {
10
+ getAvailablePorts,
11
+ getCachedPorts
12
+ } = require('../../config/get-port-config')
13
+ const { saveConfiguration } = require('../../config/save-config')
14
+ const {
15
+ buildProjectImage,
16
+ buildDebugProjectImage
17
+ } = require('./project-image-builder')
18
+ const checkPHPVersion = require('../requirements/php-version')
19
+ const { getComposerVersionTask } = require('../composer')
20
+ const { prepareFileSystem } = require('../file-system')
21
+ const { installMagentoProject } = require('../magento')
22
+ const enableMagentoComposerPlugins = require('../magento/enable-magento-composer-plugins')
23
+ const { startServices } = require('./index')
24
+ const dockerNetwork = require('./network')
25
+ const KnownError = require('../../errors/known-error')
26
+ const { createCacheFolder } = require('../cache')
27
+ const { getSystemConfigTask } = require('../../config/system-config')
28
+ const sleep = require('../../util/sleep')
29
+ const { setProjectConfigTask } = require('../project-config')
24
30
 
25
31
  /**
26
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
32
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
27
33
  */
28
34
  const convertMySQLDatabaseToMariaDB = () => ({
29
35
  task: async (ctx, task) => {
30
- const mysqlVolumeName = `${ ctx.config.baseConfig.prefix }_mysql-data`;
31
- const volumes = await volumeApi.ls({ formatToJSON: true });
36
+ const mysqlVolumeName = `${ctx.config.baseConfig.prefix}_mysql-data`
37
+ const volumes = await volumeApi.ls({ formatToJSON: true })
32
38
  if (ctx.isArmMac) {
33
- if (volumes.some(
34
- (volume) => volume.Name === mysqlVolumeName
35
- ) && !volumes.some(
36
- (volume) => volume.Name === ctx.config.docker.volumes.mariadb.name
37
- )
39
+ if (
40
+ volumes.some((volume) => volume.Name === mysqlVolumeName) &&
41
+ !volumes.some(
42
+ (volume) =>
43
+ volume.Name === ctx.config.docker.volumes.mariadb.name
44
+ )
38
45
  ) {
39
- task.title = 'Converting MySQL database to MariaDB';
46
+ task.title = 'Converting MySQL database to MariaDB'
40
47
  return task.newListr([
41
48
  stopContainers(),
42
49
  {
43
50
  title: 'Converting MySQL volume to MariaDB',
44
51
  task: async (subCtx, subTask) => {
45
- subTask.output = `Creating volume ${subCtx.config.docker.volumes.mariadb.name}...`;
46
- await volumeApi.create(subCtx.config.docker.volumes.mariadb);
47
- subTask.output = `Copying data from ${mysqlVolumeName} to ${subCtx.config.docker.volumes.mariadb.name}...`;
52
+ subTask.output = `Creating volume ${subCtx.config.docker.volumes.mariadb.name}...`
53
+ await volumeApi.create(
54
+ subCtx.config.docker.volumes.mariadb
55
+ )
56
+ subTask.output = `Copying data from ${mysqlVolumeName} to ${subCtx.config.docker.volumes.mariadb.name}...`
48
57
  await execAsyncSpawn(
49
- // eslint-disable-next-line max-len
50
- `docker run --rm -v ${mysqlVolumeName}:/from:ro -v ${subCtx.config.docker.volumes.mariadb.name}:/to alpine ash -c "cd /from; cp -av . /to"`, {
58
+ `docker run --rm -v ${mysqlVolumeName}:/from:ro -v ${subCtx.config.docker.volumes.mariadb.name}:/to alpine ash -c "cd /from; cp -av . /to"`,
59
+ {
51
60
  callback: (t) => {
52
- subTask.output = t;
61
+ subTask.output = t
53
62
  }
54
63
  }
55
- );
56
- subTask.output = 'Deleting old volume...';
57
- await execAsyncSpawn(`docker volume rm ${mysqlVolumeName}`);
64
+ )
65
+ subTask.output = 'Deleting old volume...'
66
+ await execAsyncSpawn(
67
+ `docker volume rm ${mysqlVolumeName}`
68
+ )
58
69
  },
59
70
  options: {
60
71
  bottomBar: 10
61
72
  }
62
73
  }
63
- ]);
74
+ ])
64
75
  }
65
76
 
66
- return;
77
+ return
67
78
  }
68
79
 
69
- if (volumes.some(
70
- (volume) => volume.Name === mysqlVolumeName
71
- ) && !volumes.some(
72
- (volume) => volume.Name === ctx.config.docker.volumes.mariadb.name
73
- )
80
+ if (
81
+ volumes.some((volume) => volume.Name === mysqlVolumeName) &&
82
+ !volumes.some(
83
+ (volume) =>
84
+ volume.Name === ctx.config.docker.volumes.mariadb.name
85
+ )
74
86
  ) {
75
- task.title = 'Converting MySQL database to MariaDB';
87
+ task.title = 'Converting MySQL database to MariaDB'
76
88
  const confirmConvert = await task.prompt({
77
89
  type: 'Select',
78
90
  message: `We see that you have old mysql-data volume in the project!
79
- Since ${logger.style.code('magento-scripts@2.0.0')} ${logger.style.misc('MariaDB')} is used as database instead of MySQL.
91
+ Since ${logger.style.code('magento-scripts@2.0.0')} ${logger.style.misc(
92
+ 'MariaDB'
93
+ )} is used as database instead of MySQL.
80
94
 
81
95
  To use MariaDB with data from MySQL we need to convert your database.
82
96
  `,
83
97
  choices: [
84
98
  {
85
99
  name: 'yes',
86
- message: 'Okay, let\'s do that!'
100
+ message: "Okay, let's do that!"
87
101
  },
88
102
  {
89
103
  name: 'no',
90
104
  message: 'ABORT ABORT ABORT'
91
105
  }
92
106
  ]
93
- });
107
+ })
94
108
 
95
109
  if (confirmConvert === 'yes') {
96
- const pathToMySQLDumpFile = path.join(process.cwd(), 'mysql-database.sql');
97
- const containerName = 'mysql-database';
98
- task.output = 'Creating dump file from MySQL database...';
110
+ const pathToMySQLDumpFile = path.join(
111
+ process.cwd(),
112
+ 'mysql-database.sql'
113
+ )
114
+ const containerName = 'mysql-database'
115
+ task.output = 'Creating dump file from MySQL database...'
99
116
 
100
- const existingContainers = await containerApi.ls({ formatToJSON: true, all: true });
117
+ const existingContainers = await containerApi.ls({
118
+ formatToJSON: true,
119
+ all: true
120
+ })
101
121
 
102
122
  if (existingContainers.some((c) => c.Names === containerName)) {
103
- await execAsyncSpawn(`docker container stop ${containerName}`);
104
- await execAsyncSpawn(`docker container rm ${containerName}`);
123
+ await execAsyncSpawn(
124
+ `docker container stop ${containerName}`
125
+ )
126
+ await execAsyncSpawn(`docker container rm ${containerName}`)
105
127
  }
106
128
 
107
- task.output = 'Starting MySQL server...';
129
+ task.output = 'Starting MySQL server...'
108
130
 
109
- await containerApi.run(
110
- {
111
- mounts: [
112
- `source=${ mysqlVolumeName },target=/var/lib/mysql`
113
- ],
114
- env: {
115
- MYSQL_PORT: 3306,
116
- MYSQL_ROOT_PASSWORD: 'scandipwa',
117
- MYSQL_USER: 'magento',
118
- MYSQL_PASSWORD: 'magento',
119
- MYSQL_DATABASE: 'magento'
120
- },
121
- command: [
122
- '--log_bin_trust_function_creators=1',
123
- '--default-authentication-plugin=mysql_native_password',
124
- '--max_allowed_packet=1GB',
125
- '--bind-address=0.0.0.0'
126
- ]
127
- .join(' '),
128
- securityOptions: [
129
- 'seccomp=unconfined'
130
- ],
131
- name: containerName,
132
- image: `mysql:${ ctx.config.overridenConfiguration.configuration.mysql.version }`
133
- }
134
- );
131
+ await containerApi.run({
132
+ mounts: [`source=${mysqlVolumeName},target=/var/lib/mysql`],
133
+ env: {
134
+ MYSQL_PORT: 3306,
135
+ MYSQL_ROOT_PASSWORD: 'scandipwa',
136
+ MYSQL_USER: 'magento',
137
+ MYSQL_PASSWORD: 'magento',
138
+ MYSQL_DATABASE: 'magento'
139
+ },
140
+ command: [
141
+ '--log_bin_trust_function_creators=1',
142
+ '--default-authentication-plugin=mysql_native_password',
143
+ '--max_allowed_packet=1GB',
144
+ '--bind-address=0.0.0.0'
145
+ ].join(' '),
146
+ securityOptions: ['seccomp=unconfined'],
147
+ name: containerName,
148
+ image: `mysql:${ctx.config.overridenConfiguration.configuration.mysql.version}`
149
+ })
135
150
 
136
- task.output = 'Waiting for MySQL to initialize...';
151
+ task.output = 'Waiting for MySQL to initialize...'
137
152
 
138
- let mysqlReadyForConnections = false;
153
+ let mysqlReadyForConnections = false
139
154
 
140
155
  while (!mysqlReadyForConnections) {
141
- const mysqlOutput = await execAsyncSpawn(`docker logs ${containerName}`);
156
+ const mysqlOutput = await execAsyncSpawn(
157
+ `docker logs ${containerName}`
158
+ )
142
159
  if (mysqlOutput.includes('ready for connections')) {
143
- mysqlReadyForConnections = true;
144
- task.output = 'MySQL is ready!';
145
- break;
146
- } else if (mysqlOutput.includes('Initializing database files')) {
160
+ mysqlReadyForConnections = true
161
+ task.output = 'MySQL is ready!'
162
+ break
163
+ } else if (
164
+ mysqlOutput.includes('Initializing database files')
165
+ ) {
147
166
  task.output = `MySQL is initializing database files!
148
- Please wait, this will take some time and do not restart the MySQL container until initialization is finished!`;
167
+ Please wait, this will take some time and do not restart the MySQL container until initialization is finished!`
149
168
 
150
- let mysqlFinishedInitialization = false;
169
+ let mysqlFinishedInitialization = false
151
170
  while (!mysqlFinishedInitialization) {
152
- const mysqlOutput = await execAsyncSpawn(`docker logs ${containerName}`);
153
- if (mysqlOutput.includes('init process done.') && !mysqlFinishedInitialization) {
154
- mysqlFinishedInitialization = true;
155
- task.output = 'MySQL is initialized!';
156
- break;
171
+ const mysqlOutput = await execAsyncSpawn(
172
+ `docker logs ${containerName}`
173
+ )
174
+ if (
175
+ mysqlOutput.includes('init process done.') &&
176
+ !mysqlFinishedInitialization
177
+ ) {
178
+ mysqlFinishedInitialization = true
179
+ task.output = 'MySQL is initialized!'
180
+ break
157
181
  }
158
- await sleep(2000);
182
+ await sleep(2000)
159
183
  }
160
184
  }
161
185
 
162
- await sleep(2000);
186
+ await sleep(2000)
163
187
  }
164
188
 
165
- task.output = 'Dumping MySQL database to dump file...';
189
+ task.output = 'Dumping MySQL database to dump file...'
166
190
 
167
191
  await containerApi.exec(
168
192
  [
@@ -170,33 +194,31 @@ Please wait, this will take some time and do not restart the MySQL container unt
170
194
  '--user=root',
171
195
  '--password=scandipwa',
172
196
  'magento',
173
- `--result-file=${ path.parse(pathToMySQLDumpFile).base }`
197
+ `--result-file=${path.parse(pathToMySQLDumpFile).base}`
174
198
  ].join(' '),
175
199
  containerName,
176
200
  {},
177
201
  {
178
202
  callback: (t) => {
179
- task.output = t;
203
+ task.output = t
180
204
  }
181
205
  }
182
- );
206
+ )
183
207
 
184
- task.output = 'Copying dump file from container to system...';
208
+ task.output = 'Copying dump file from container to system...'
185
209
 
186
210
  await execAsyncSpawn(
187
- `docker cp ${containerName}:/${ path.parse(pathToMySQLDumpFile).base } ${ pathToMySQLDumpFile }`
188
- );
211
+ `docker cp ${containerName}:/${
212
+ path.parse(pathToMySQLDumpFile).base
213
+ } ${pathToMySQLDumpFile}`
214
+ )
189
215
 
190
- task.output = 'Removing migration container...';
216
+ task.output = 'Removing migration container...'
191
217
 
192
- await execAsyncSpawn(
193
- `docker container stop ${containerName}`
194
- );
195
- await execAsyncSpawn(
196
- `docker container rm ${containerName}`
197
- );
218
+ await execAsyncSpawn(`docker container stop ${containerName}`)
219
+ await execAsyncSpawn(`docker container rm ${containerName}`)
198
220
 
199
- ctx.importDb = pathToMySQLDumpFile;
221
+ ctx.importDb = pathToMySQLDumpFile
200
222
 
201
223
  return task.newListr([
202
224
  createCacheFolder(),
@@ -212,12 +234,13 @@ Please wait, this will take some time and do not restart the MySQL container unt
212
234
  dockerNetwork.tasks.createNetwork(),
213
235
  createVolumes(),
214
236
  {
215
- task: (ctx, task) => task.newListr([
216
- buildProjectImage(),
217
- buildDebugProjectImage()
218
- ], {
219
- concurrent: true
220
- })
237
+ task: (ctx, task) =>
238
+ task.newListr(
239
+ [buildProjectImage(), buildDebugProjectImage()],
240
+ {
241
+ concurrent: true
242
+ }
243
+ )
221
244
  },
222
245
  checkPHPVersion(),
223
246
  getComposerVersionTask(),
@@ -229,56 +252,64 @@ Please wait, this will take some time and do not restart the MySQL container unt
229
252
  importDumpToDatabase(),
230
253
  {
231
254
  task: async (subCtx, subTask) => {
232
- const confirmDeleteOldVolume = await subTask.prompt({
233
- type: 'Select',
234
- message: 'Okay, looks like conversion went well, do you want to delete old mysql-data volume?',
235
- choices: [
236
- {
237
- name: 'yes',
238
- message: 'Sure'
239
- },
240
- {
241
- name: 'no',
242
- message: 'No, I want to keep it'
243
- }
244
- ]
245
- });
255
+ const confirmDeleteOldVolume = await subTask.prompt(
256
+ {
257
+ type: 'Select',
258
+ message:
259
+ 'Okay, looks like conversion went well, do you want to delete old mysql-data volume?',
260
+ choices: [
261
+ {
262
+ name: 'yes',
263
+ message: 'Sure'
264
+ },
265
+ {
266
+ name: 'no',
267
+ message: 'No, I want to keep it'
268
+ }
269
+ ]
270
+ }
271
+ )
246
272
 
247
273
  if (confirmDeleteOldVolume === 'yes') {
248
- await execAsyncSpawn(`docker volume rm ${ mysqlVolumeName }`);
274
+ await execAsyncSpawn(
275
+ `docker volume rm ${mysqlVolumeName}`
276
+ )
249
277
 
250
278
  const confirmDeleteDump = await subTask.prompt({
251
279
  type: 'Select',
252
280
  message: `Last question for today.
253
- Do you want to keep database dump created during conversion process? (${logger.style.file(pathToMySQLDumpFile)})`,
281
+ Do you want to keep database dump created during conversion process? (${logger.style.file(
282
+ pathToMySQLDumpFile
283
+ )})`,
254
284
  choices: [
255
285
  {
256
286
  name: 'yes',
257
- message: 'I don\'t need it, thanks'
287
+ message: "I don't need it, thanks"
258
288
  },
259
289
  {
260
290
  name: 'no',
261
- message: 'I would like to keep it, thanks'
291
+ message:
292
+ 'I would like to keep it, thanks'
262
293
  }
263
294
  ]
264
- });
295
+ })
265
296
 
266
297
  if (confirmDeleteDump === 'yes') {
267
- await fs.promises.rm(pathToMySQLDumpFile);
298
+ await fs.promises.rm(pathToMySQLDumpFile)
268
299
  }
269
300
  }
270
301
  }
271
302
  }
272
- ]);
303
+ ])
273
304
  }
274
- throw new KnownError('ABORTING');
305
+ throw new KnownError('ABORTING')
275
306
  }
276
307
 
277
- task.skip();
308
+ task.skip()
278
309
  },
279
310
  options: {
280
311
  bottomBar: 10
281
312
  }
282
- });
313
+ })
283
314
 
284
- module.exports = convertMySQLDatabaseToMariaDB;
315
+ module.exports = convertMySQLDatabaseToMariaDB