@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,45 +1,59 @@
1
1
  /* eslint-disable max-len */
2
- const logger = require('@scandipwa/scandipwa-dev-utils/logger');
3
- const KnownError = require('../../errors/known-error');
4
- const UnknownError = require('../../errors/unknown-error');
5
- const { execAsyncSpawn, execCommandTask } = require('../../util/exec-async-command');
6
- const pathExists = require('../../util/path-exists');
7
- const connectToDatabase = require('./connect-to-database');
8
- const defaultMagentoUser = require('./default-magento-user');
2
+ const logger = require('@scandipwa/scandipwa-dev-utils/logger')
3
+ const KnownError = require('../../errors/known-error')
4
+ const UnknownError = require('../../errors/unknown-error')
5
+ const {
6
+ execAsyncSpawn,
7
+ execCommandTask
8
+ } = require('../../util/exec-async-command')
9
+ const pathExists = require('../../util/path-exists')
10
+ const connectToDatabase = require('./connect-to-database')
11
+ const defaultMagentoUser = require('./default-magento-user')
9
12
 
10
13
  /**
11
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
14
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
12
15
  */
13
16
  const copyDatabaseDumpIntoContainer = () => ({
14
17
  title: 'Copying database dump into container',
15
18
  task: async (ctx, task) => {
16
- const { config: { docker }, ports } = ctx;
17
- const { mariadb } = docker.getContainers(ports);
19
+ const {
20
+ config: { docker },
21
+ ports
22
+ } = ctx
23
+ const { mariadb } = docker.getContainers(ports)
18
24
 
19
25
  return task.newListr(
20
- execCommandTask(`docker cp ${ctx.importDb} ${mariadb.name}:/dump.sql`, {
21
- logOutput: true
22
- })
23
- );
26
+ execCommandTask(
27
+ `docker cp ${ctx.importDb} ${mariadb.name}:/dump.sql`,
28
+ {
29
+ logOutput: true
30
+ }
31
+ )
32
+ )
24
33
  }
25
- });
34
+ })
26
35
 
27
36
  /**
28
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
37
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
29
38
  */
30
39
  const runSetGlobalLogBinTrustFunctionCreatorsCommand = () => ({
31
40
  task: async (ctx, task) => {
32
- const { config: { docker }, ports } = ctx;
33
- const { mariadb } = docker.getContainers(ports);
41
+ const {
42
+ config: { docker },
43
+ ports
44
+ } = ctx
45
+ const { mariadb } = docker.getContainers(ports)
34
46
 
35
47
  return task.newListr(
36
- execCommandTask(`docker exec ${mariadb.name} bash -c 'mysql -uroot -p${mariadb.env.MARIADB_ROOT_PASSWORD} -e "SET GLOBAL log_bin_trust_function_creators = 1;"'`)
37
- );
48
+ execCommandTask(
49
+ `docker exec ${mariadb.name} bash -c 'mysql -uroot -p${mariadb.env.MARIADB_ROOT_PASSWORD} -e "SET GLOBAL log_bin_trust_function_creators = 1;"'`
50
+ )
51
+ )
38
52
  }
39
- });
53
+ })
40
54
 
41
55
  /**
42
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
56
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
43
57
  */
44
58
  const deleteDatabaseBeforeImportingDumpPrompt = () => ({
45
59
  title: 'Deleting magento database before importing dump',
@@ -61,145 +75,168 @@ Note that you will lose your existing database!`,
61
75
  message: 'Skip this step'
62
76
  }
63
77
  ]
64
- });
78
+ })
65
79
 
66
80
  if (deleteDatabaseMagentoChoice === 'delete') {
67
- await ctx.databaseConnection.query('DROP DATABASE IF EXISTS magento;');
68
- await ctx.databaseConnection.query('CREATE DATABASE magento;');
69
- return;
81
+ await ctx.databaseConnection.query(
82
+ 'DROP DATABASE IF EXISTS magento;'
83
+ )
84
+ await ctx.databaseConnection.query('CREATE DATABASE magento;')
85
+ return
70
86
  }
71
- task.skip();
87
+ task.skip()
72
88
  }
73
- });
89
+ })
74
90
 
75
91
  /**
76
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
92
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
77
93
  */
78
94
  const executeImportDumpSQL = () => ({
79
95
  task: async (ctx, task) => {
80
- const { config: { docker }, ports } = ctx;
81
- const { mariadb } = docker.getContainers(ports);
96
+ const {
97
+ config: { docker },
98
+ ports
99
+ } = ctx
100
+ const { mariadb } = docker.getContainers(ports)
82
101
 
83
102
  const userCredentialsForMariaDBCLI = await task.prompt({
84
103
  type: 'Select',
85
- message: `Which user do you want to use to import db in ${ mariadb._ } client?`,
104
+ message: `Which user do you want to use to import db in ${mariadb._} client?`,
86
105
  choices: [
87
106
  {
88
107
  name: `--user=root --password=${mariadb.env.MARIADB_ROOT_PASSWORD}`,
89
- message: `root (${logger.style.command('Probably safest option')})`
108
+ message: `root (${logger.style.command(
109
+ 'Probably safest option'
110
+ )})`
90
111
  },
91
112
  {
92
113
  name: `--user=${defaultMagentoUser.user} --password=${defaultMagentoUser.password}`,
93
114
  message: `${defaultMagentoUser.user}`
94
115
  }
95
116
  ]
96
- });
117
+ })
97
118
 
98
- const importCommand = `docker exec ${mariadb.name} bash -c "mysql ${userCredentialsForMariaDBCLI} magento < ./dump.sql"`;
119
+ const importCommand = `docker exec ${mariadb.name} bash -c "mysql ${userCredentialsForMariaDBCLI} magento < ./dump.sql"`
99
120
 
100
- const startImportTime = Date.now();
121
+ const startImportTime = Date.now()
101
122
  const tickInterval = setInterval(() => {
102
- task.title = `Importing Database Dump To ${ mariadb._ }, ${Math.floor((Date.now() - startImportTime) / 1000)}s in progress...`;
103
- }, 1000);
123
+ task.title = `Importing Database Dump To ${mariadb._}, ${Math.floor(
124
+ (Date.now() - startImportTime) / 1000
125
+ )}s in progress...`
126
+ }, 1000)
104
127
 
105
128
  try {
106
- await execAsyncSpawn(
107
- importCommand,
108
- {
109
- callback: (t) => {
110
- task.output = t;
111
- }
129
+ await execAsyncSpawn(importCommand, {
130
+ callback: (t) => {
131
+ task.output = t
112
132
  }
113
- );
133
+ })
114
134
  } catch (e) {
115
- if (e.message.includes('Unknown collation: \'utf8mb4_0900_ai_ci\'')) {
135
+ if (e.message.includes("Unknown collation: 'utf8mb4_0900_ai_ci'")) {
116
136
  const confirmFixingCollation = await task.prompt({
117
137
  type: 'Select',
118
- message: `We got the following error while trying to import ${logger.style.file('dump.sql')}!
138
+ message: `We got the following error while trying to import ${logger.style.file(
139
+ 'dump.sql'
140
+ )}!
119
141
 
120
142
  ${e.message}
121
143
 
122
144
  To fix this error we suggest running the following commands:
123
- ${logger.style.command('sed -i \'s/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g\' dump.sql')}
145
+ ${logger.style.command(
146
+ "sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' dump.sql"
147
+ )}
124
148
  `,
125
149
  choices: [
126
150
  {
127
151
  name: 'yes',
128
- message: 'Yes, run the following commands, I reaaaalllyy want dump to work! (this will not edit original dump.sql)'
152
+ message:
153
+ 'Yes, run the following commands, I reaaaalllyy want dump to work! (this will not edit original dump.sql)'
129
154
  },
130
155
  {
131
156
  name: 'no',
132
157
  message: 'Okay, I got it. Will try to fix myself'
133
158
  }
134
159
  ]
135
- });
160
+ })
136
161
 
137
162
  if (confirmFixingCollation === 'yes') {
138
- task.output = 'Running fix command...';
139
- await execAsyncSpawn(`docker exec ${mariadb.name} bash -c "sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' dump.sql"`);
163
+ task.output = 'Running fix command...'
164
+ await execAsyncSpawn(
165
+ `docker exec ${mariadb.name} bash -c "sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' dump.sql"`
166
+ )
140
167
 
141
- task.output = 'Trying to import dump again...';
168
+ task.output = 'Trying to import dump again...'
142
169
  try {
143
- await execAsyncSpawn(
144
- importCommand,
145
- {
146
- callback: (t) => {
147
- task.output = t;
148
- }
170
+ await execAsyncSpawn(importCommand, {
171
+ callback: (t) => {
172
+ task.output = t
149
173
  }
150
- );
174
+ })
151
175
 
152
- return;
176
+ return
153
177
  } catch (e) {
154
- throw new KnownError(`Fixing ${logger.style.file('dump.sql')} collations did not helped, we got the following error:
155
- ${e.message}`);
178
+ throw new KnownError(`Fixing ${logger.style.file(
179
+ 'dump.sql'
180
+ )} collations did not helped, we got the following error:
181
+ ${e.message}`)
156
182
  }
157
183
  } else {
158
184
  throw new KnownError(`Database dump import unsuccessful!
159
185
 
160
186
  ${e.message}
161
187
 
162
- You can try replacing all occurrences of ${logger.style.misc('utf8mb4_0900_ai_ci')} with ${logger.style.misc('utf8mb4_general_ci')} in your ${logger.style.file(ctx.importDb)} file!`);
188
+ You can try replacing all occurrences of ${logger.style.misc(
189
+ 'utf8mb4_0900_ai_ci'
190
+ )} with ${logger.style.misc(
191
+ 'utf8mb4_general_ci'
192
+ )} in your ${logger.style.file(ctx.importDb)} file!`)
163
193
  }
164
194
  }
165
195
 
166
- throw new UnknownError(`Unexpected error during dump import.\n\n${e}`);
196
+ throw new UnknownError(
197
+ `Unexpected error during dump import.\n\n${e}`
198
+ )
167
199
  } finally {
168
- clearInterval(tickInterval);
200
+ clearInterval(tickInterval)
169
201
  }
170
202
  },
171
203
  options: {
172
204
  bottomBar: 10
173
205
  }
174
- });
206
+ })
175
207
 
176
208
  /**
177
- * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
209
+ * @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
178
210
  */
179
211
  const importDumpToDatabase = () => ({
180
212
  title: 'Importing Database Dump',
181
213
  task: async (ctx, task) => {
182
- if (!await pathExists(ctx.importDb)) {
183
- throw new KnownError(`Dump file at ${ctx.importDb} does not exist. Please provide correct relative path to the file`);
214
+ if (!(await pathExists(ctx.importDb))) {
215
+ throw new KnownError(
216
+ `Dump file at ${ctx.importDb} does not exist. Please provide correct relative path to the file`
217
+ )
184
218
  }
185
219
 
186
- return task.newListr([
187
- copyDatabaseDumpIntoContainer(),
188
- deleteDatabaseBeforeImportingDumpPrompt(),
189
- runSetGlobalLogBinTrustFunctionCreatorsCommand(),
190
- executeImportDumpSQL(),
191
- connectToDatabase(),
220
+ return task.newListr(
221
+ [
222
+ copyDatabaseDumpIntoContainer(),
223
+ deleteDatabaseBeforeImportingDumpPrompt(),
224
+ runSetGlobalLogBinTrustFunctionCreatorsCommand(),
225
+ executeImportDumpSQL(),
226
+ connectToDatabase(),
227
+ {
228
+ task: () => {
229
+ task.title = 'Database imported!'
230
+ }
231
+ }
232
+ ],
192
233
  {
193
- task: () => {
194
- task.title = 'Database imported!';
234
+ rendererOptions: {
235
+ collapse: false
195
236
  }
196
237
  }
197
- ], {
198
- rendererOptions: {
199
- collapse: false
200
- }
201
- });
238
+ )
202
239
  }
203
- });
240
+ })
204
241
 
205
- module.exports = importDumpToDatabase;
242
+ module.exports = importDumpToDatabase
@@ -1,13 +1,13 @@
1
- const UnknownError = require('../../../errors/unknown-error');
2
- const sshDb = require('./ssh');
1
+ const UnknownError = require('../../../errors/unknown-error')
2
+ const sshDb = require('./ssh')
3
3
 
4
4
  /**
5
- * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
+ * @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
6
6
  */
7
7
  const importRemoteDbSSH = () => ({
8
8
  skip: (ctx) => typeof ctx.remoteDb === 'undefined',
9
9
  task: async (ctx, task) => {
10
- task.title = 'Importing database from remote server';
10
+ task.title = 'Importing database from remote server'
11
11
 
12
12
  if (!ctx.remoteDb) {
13
13
  ctx.remoteDb = await task.prompt({
@@ -15,26 +15,24 @@ const importRemoteDbSSH = () => ({
15
15
  message: `Please enter a remote server connection string.
16
16
  It can be a SSH (ssh://<url>) connection or mysql (mysql://<url>) connection.
17
17
  `
18
- });
18
+ })
19
19
  }
20
20
 
21
- const url = new URL(ctx.remoteDb);
21
+ const url = new URL(ctx.remoteDb)
22
22
 
23
- ctx.remoteDbUrl = url;
23
+ ctx.remoteDbUrl = url
24
24
 
25
- const { protocol } = url;
25
+ const { protocol } = url
26
26
 
27
27
  switch (protocol) {
28
- case 'ssh:': {
29
- return task.newListr(
30
- sshDb()
31
- );
32
- }
33
- default: {
34
- throw new UnknownError(`Unsupported protocol ${protocol}`);
35
- }
28
+ case 'ssh:': {
29
+ return task.newListr(sshDb())
30
+ }
31
+ default: {
32
+ throw new UnknownError(`Unsupported protocol ${protocol}`)
33
+ }
36
34
  }
37
35
  }
38
- });
36
+ })
39
37
 
40
- module.exports = importRemoteDbSSH;
38
+ module.exports = importRemoteDbSSH
@@ -7,6 +7,6 @@ const databaseDumpCommandWithOptions = [
7
7
  '--column-statistics=0',
8
8
  '--max_allowed_packet=1GB',
9
9
  '--no-tablespaces'
10
- ];
10
+ ]
11
11
 
12
- module.exports = databaseDumpCommandWithOptions;
12
+ module.exports = databaseDumpCommandWithOptions
@@ -1,67 +1,70 @@
1
- const os = require('os');
2
- const { NodeSSH } = require('node-ssh');
3
- const pathExists = require('../../../../util/path-exists');
4
- const regularSSHServer = require('./regular-server');
5
- const readymageSSH = require('./readymage');
6
- const KnownError = require('../../../../errors/known-error');
1
+ const os = require('os')
2
+ const { NodeSSH } = require('node-ssh')
3
+ const pathExists = require('../../../../util/path-exists')
4
+ const regularSSHServer = require('./regular-server')
5
+ const readymageSSH = require('./readymage')
6
+ const KnownError = require('../../../../errors/known-error')
7
7
 
8
8
  /**
9
- * @type {() => import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
9
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext>}
10
10
  */
11
11
  const sshDb = () => ({
12
12
  task: async (ctx, task) => {
13
- const { remoteDbUrl, withCustomersData, noCompress } = ctx;
14
- const { hostname, username, password } = remoteDbUrl;
13
+ const { remoteDbUrl, withCustomersData, noCompress } = ctx
14
+ const { hostname, username, password } = remoteDbUrl
15
15
 
16
- task.title = `Importing database from remote ssh server ${hostname}`;
16
+ task.title = `Importing database from remote ssh server ${hostname}`
17
17
 
18
- const ssh = new NodeSSH();
19
- ctx.ssh = ssh;
18
+ const ssh = new NodeSSH()
19
+ ctx.ssh = ssh
20
20
 
21
21
  if (!password) {
22
22
  const privateKey = await task.prompt({
23
23
  type: 'Input',
24
24
  message: `Please enter your private key location to connect to ${hostname}\n`,
25
25
  initial: `${os.homedir()}/.ssh/id_rsa`
26
- });
26
+ })
27
27
 
28
28
  if (!(await pathExists(privateKey))) {
29
- throw new KnownError(`Private key not found: ${privateKey}`);
29
+ throw new KnownError(`Private key not found: ${privateKey}`)
30
30
  }
31
31
 
32
- ctx.privateKey = privateKey;
32
+ ctx.privateKey = privateKey
33
33
 
34
34
  const passphrase = await task.prompt({
35
35
  type: 'Input',
36
- message: 'Please enter your private key passphrase (if you have it)'
37
- });
36
+ message:
37
+ 'Please enter your private key passphrase (if you have it)'
38
+ })
38
39
 
39
- ctx.passphrase = passphrase || undefined;
40
+ ctx.passphrase = passphrase || undefined
40
41
 
41
42
  await ssh.connect({
42
43
  host: hostname,
43
44
  username,
44
45
  privateKey,
45
46
  passphrase
46
- });
47
+ })
47
48
  } else {
48
49
  await ssh.connect({
49
50
  host: hostname,
50
51
  username,
51
52
  password
52
- });
53
+ })
53
54
  }
54
55
 
55
- ctx.importDb = './dump.sql';
56
+ ctx.importDb = './dump.sql'
56
57
 
57
- const { stdout: remoteFilesOutput } = await ssh.execCommand('ls');
58
+ const { stdout: remoteFilesOutput } = await ssh.execCommand('ls')
58
59
 
59
- const dumpFileNames = !withCustomersData ? ['dump-0.sql', 'dump-1.sql'] : ['dump.sql'];
60
+ const dumpFileNames = !withCustomersData
61
+ ? ['dump-0.sql', 'dump-1.sql']
62
+ : ['dump.sql']
60
63
 
61
64
  if (!noCompress) {
62
- dumpFileNames.push('dump.sql.gz');
65
+ dumpFileNames.push('dump.sql.gz')
63
66
  }
64
- const remoteFiles = remoteFilesOutput.split('\n');
67
+ const remoteFiles = remoteFilesOutput.split('\n')
65
68
 
66
69
  if (dumpFileNames.every((dumpFile) => remoteFiles.includes(dumpFile))) {
67
70
  ctx.makeRemoteDumps = await task.prompt({
@@ -71,24 +74,20 @@ const sshDb = () => ({
71
74
  message: `We found dump files on remote server.
72
75
  Do you want to replace them with new dump files or use existing ones?
73
76
  `
74
- });
77
+ })
75
78
  } else {
76
- ctx.makeRemoteDumps = true;
79
+ ctx.makeRemoteDumps = true
77
80
  }
78
81
 
79
82
  if (hostname.endsWith('readymage.com')) {
80
- return task.newListr(
81
- readymageSSH()
82
- );
83
+ return task.newListr(readymageSSH())
83
84
  }
84
85
 
85
- return task.newListr(
86
- regularSSHServer()
87
- );
86
+ return task.newListr(regularSSHServer())
88
87
  },
89
88
  options: {
90
89
  bottomBar: 10
91
90
  }
92
- });
91
+ })
93
92
 
94
- module.exports = sshDb;
93
+ module.exports = sshDb
@@ -1,10 +1,10 @@
1
- const mergeFiles = require('merge-files');
2
- const { orderTables, customerTables } = require('../../magento-tables');
3
- const { execAsyncSpawn } = require('../../../../util/exec-async-command');
4
- const databaseDumpCommandWithOptions = require('./database-dump-command');
1
+ const mergeFiles = require('merge-files')
2
+ const { orderTables, customerTables } = require('../../magento-tables')
3
+ const { execAsyncSpawn } = require('../../../../util/exec-async-command')
4
+ const databaseDumpCommandWithOptions = require('./database-dump-command')
5
5
 
6
6
  /**
7
- * @type {() => import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh').NodeSSH }>}
7
+ * @returns {import('listr2').ListrTask<import('../../../../../typings/context').ListrContext & { ssh: import('node-ssh').NodeSSH }>}
8
8
  */
9
9
  const readymageSSH = () => ({
10
10
  task: async (ctx, task) => {
@@ -14,11 +14,12 @@ const readymageSSH = () => ({
14
14
  makeRemoteDumps,
15
15
  withCustomersData,
16
16
  noCompress
17
- } = ctx;
18
- const sshConnectString = remoteDbUrl.href.replace(/ssh:\/\//i, '');
17
+ } = ctx
18
+ const sshConnectString = remoteDbUrl.href.replace(/ssh:\/\//i, '')
19
19
  if (makeRemoteDumps) {
20
20
  if (!withCustomersData) {
21
- task.output = 'Making remote database dump files without customers data...';
21
+ task.output =
22
+ 'Making remote database dump files without customers data...'
22
23
 
23
24
  /**
24
25
  * create dump without customers and orders
@@ -26,10 +27,12 @@ const readymageSSH = () => ({
26
27
  await ssh.execCommand(
27
28
  [
28
29
  ...databaseDumpCommandWithOptions,
29
- ...[...orderTables, ...customerTables].map((table) => `--ignore-table=magento.${table}`),
30
+ ...[...orderTables, ...customerTables].map(
31
+ (table) => `--ignore-table=magento.${table}`
32
+ ),
30
33
  '--result-file=dump-0.sql'
31
34
  ].join(' ')
32
- );
35
+ )
33
36
 
34
37
  await ssh.execCommand(
35
38
  [
@@ -38,71 +41,71 @@ const readymageSSH = () => ({
38
41
  '--result-file=dump-1.sql',
39
42
  ...[...orderTables, ...customerTables]
40
43
  ].join(' ')
41
- );
44
+ )
42
45
  } else {
43
- task.output = 'Making remote database dump file with customers data...';
44
- await ssh.execCommand([...databaseDumpCommandWithOptions, '--result-file=dump.sql'].join(' '));
46
+ task.output =
47
+ 'Making remote database dump file with customers data...'
48
+ await ssh.execCommand(
49
+ [
50
+ ...databaseDumpCommandWithOptions,
51
+ '--result-file=dump.sql'
52
+ ].join(' ')
53
+ )
45
54
  }
46
55
 
47
56
  if (!noCompress) {
48
- task.output = 'Compressing dump files...';
57
+ task.output = 'Compressing dump files...'
49
58
  if (!withCustomersData) {
50
59
  await ssh.execCommand(
51
60
  'tar -czvf dump.sql.gz ./dump-0.sql ./dump-1.sql'
52
- );
61
+ )
53
62
  } else {
54
- await ssh.execCommand(
55
- 'tar -czvf dump.sql.gz ./dump.sql'
56
- );
63
+ await ssh.execCommand('tar -czvf dump.sql.gz ./dump.sql')
57
64
  }
58
65
  }
59
66
  }
60
67
 
61
- const { stdout: remotePwd } = await ssh.execCommand('pwd');
68
+ const { stdout: remotePwd } = await ssh.execCommand('pwd')
62
69
 
63
- ssh.dispose();
70
+ ssh.dispose()
64
71
 
65
72
  if (!withCustomersData) {
66
- task.output = 'Downloading dump files...';
73
+ task.output = 'Downloading dump files...'
67
74
  if (noCompress) {
68
75
  await execAsyncSpawn(
69
76
  `scp ${sshConnectString}:${remotePwd}/dump-0.sql .`
70
- );
77
+ )
71
78
  await execAsyncSpawn(
72
79
  `scp ${sshConnectString}:${remotePwd}/dump-1.sql .`
73
- );
80
+ )
74
81
  } else {
75
82
  await execAsyncSpawn(
76
83
  `scp ${sshConnectString}:${remotePwd}/dump.sql.gz .`
77
- );
84
+ )
78
85
 
79
- task.output = 'Extracting dump files...';
86
+ task.output = 'Extracting dump files...'
80
87
 
81
- await execAsyncSpawn(
82
- 'tar -xf ./dump.sql.gz'
83
- );
88
+ await execAsyncSpawn('tar -xf ./dump.sql.gz')
84
89
  }
85
90
 
86
- await mergeFiles(['./dump-0.sql', './dump-1.sql'], './dump.sql');
91
+ await mergeFiles(['./dump-0.sql', './dump-1.sql'], './dump.sql')
87
92
  } else {
88
- task.output = 'Downloading dump file...';
93
+ task.output = 'Downloading dump file...'
89
94
  if (noCompress) {
90
95
  await execAsyncSpawn(
91
96
  `scp ${sshConnectString}:${remotePwd}/dump.sql .`
92
- );
97
+ )
93
98
  } else {
94
99
  await execAsyncSpawn(
95
100
  `scp ${sshConnectString}:${remotePwd}/dump.sql.gz .`
96
- );
101
+ )
97
102
 
98
- task.output = 'Extracting dump file...';
103
+ task.output = 'Extracting dump file...'
99
104
 
100
- await execAsyncSpawn(
101
- 'tar -xf ./dump.sql.gz'
102
- );
105
+ await execAsyncSpawn('tar -xf ./dump.sql.gz')
103
106
  }
104
107
  }
105
108
  }
106
- });
109
+ })
107
110
 
108
- module.exports = readymageSSH;
111
+ module.exports = readymageSSH