@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.
- package/.eslintrc +6 -1
- package/exec.js +75 -39
- package/index.js +87 -46
- package/lib/commands/cleanup.js +18 -21
- package/lib/commands/cli.js +138 -73
- package/lib/commands/execute.js +5 -5
- package/lib/commands/import-db.js +21 -24
- package/lib/commands/link.js +17 -20
- package/lib/commands/logs.js +91 -91
- package/lib/commands/start.js +229 -191
- package/lib/commands/status.js +64 -50
- package/lib/commands/stop.js +14 -11
- package/lib/config/check-configuration-file.js +33 -28
- package/lib/config/cma-config.js +4 -4
- package/lib/config/config.js +40 -18
- package/lib/config/dependencies-for-platforms.js +33 -3
- package/lib/config/docker.js +259 -160
- package/lib/config/get-magento-version-config.js +45 -38
- package/lib/config/get-port-config.js +30 -44
- package/lib/config/get-project-configuration.js +8 -8
- package/lib/config/index.js +51 -42
- package/lib/config/magento/required-php-extensions/index.js +33 -19
- package/lib/config/magento/required-php-extensions/magento-2.3.js +2 -2
- package/lib/config/magento/required-php-extensions/magento-2.4.js +2 -2
- package/lib/config/magento-config.js +4 -4
- package/lib/config/php-config.js +8 -6
- package/lib/config/port-config.js +62 -43
- package/lib/config/save-config.js +6 -6
- package/lib/config/scandipwa-versions.js +2 -2
- package/lib/config/services/composer/versions/composer-1.js +2 -2
- package/lib/config/services/composer/versions/composer-2.js +2 -2
- package/lib/config/services/composer/versions/index.js +1 -1
- package/lib/config/services/elasticsearch/base-repo.js +1 -1
- package/lib/config/services/elasticsearch/default-es-env.js +4 -1
- package/lib/config/services/elasticsearch/versions/elasticsearch-6.8.js +17 -14
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +4 -4
- package/lib/config/services/elasticsearch/versions/index.js +9 -9
- package/lib/config/services/maildev/index.js +5 -2
- package/lib/config/services/mariadb/versions/index.js +1 -1
- package/lib/config/services/mariadb/versions/mariadb-10.2.js +5 -4
- package/lib/config/services/mariadb/versions/mariadb-10.3.js +5 -4
- package/lib/config/services/mariadb/versions/mariadb-10.4.js +5 -4
- package/lib/config/services/nginx/versions/index.js +1 -1
- package/lib/config/services/nginx/versions/nginx-1.18.js +5 -4
- package/lib/config/services/php/base-repo.js +1 -1
- package/lib/config/services/php/extensions/apcu.js +3 -3
- package/lib/config/services/php/extensions/bcmath.js +2 -2
- package/lib/config/services/php/extensions/curl.js +3 -6
- package/lib/config/services/php/extensions/gd.js +4 -3
- package/lib/config/services/php/extensions/index.js +9 -8
- package/lib/config/services/php/extensions/intl.js +3 -5
- package/lib/config/services/php/extensions/opcache.js +3 -5
- package/lib/config/services/php/extensions/pdo_mysql.js +2 -2
- package/lib/config/services/php/extensions/soap.js +3 -5
- package/lib/config/services/php/extensions/sodium.js +3 -5
- package/lib/config/services/php/extensions/xdebug.js +5 -3
- package/lib/config/services/php/extensions/xsl.js +3 -5
- package/lib/config/services/php/extensions/zip.js +3 -5
- package/lib/config/services/php/versions/index.js +1 -1
- package/lib/config/services/php/versions/php-7.2.js +13 -9
- package/lib/config/services/php/versions/php-7.3.js +13 -9
- package/lib/config/services/php/versions/php-7.4.js +13 -9
- package/lib/config/services/php/versions/php-8.1.js +13 -9
- package/lib/config/services/redis/index.js +1 -1
- package/lib/config/services/redis/redis-5.0.js +2 -2
- package/lib/config/services/redis/redis-6.0.js +2 -2
- package/lib/config/services/redis/redis-6.2.js +2 -2
- package/lib/config/services/ssl-terminator/index.js +6 -5
- package/lib/config/services/varnish/index.js +1 -1
- package/lib/config/services/varnish/varnish-6-0.js +7 -5
- package/lib/config/services/varnish/varnish-6-6.js +7 -5
- package/lib/config/services/varnish/varnish-7-0.js +7 -5
- package/lib/config/system-config.js +55 -32
- package/lib/config/templates/mariadb.template.cnf +8 -0
- package/lib/config/versions/index.js +48 -27
- package/lib/config/versions/magento-2.2.10.js +22 -15
- package/lib/config/versions/magento-2.3.0.js +22 -15
- package/lib/config/versions/magento-2.3.1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p2.js +22 -15
- package/lib/config/versions/magento-2.3.2.js +22 -15
- package/lib/config/versions/magento-2.3.3-p1.js +22 -15
- package/lib/config/versions/magento-2.3.3.js +22 -15
- package/lib/config/versions/magento-2.3.4-p1.js +22 -15
- package/lib/config/versions/magento-2.3.4-p2.js +22 -15
- package/lib/config/versions/magento-2.3.4.js +22 -15
- package/lib/config/versions/magento-2.3.5-p1.js +22 -15
- package/lib/config/versions/magento-2.3.5-p2.js +22 -15
- package/lib/config/versions/magento-2.3.5.js +27 -15
- package/lib/config/versions/magento-2.3.6-p1.js +22 -15
- package/lib/config/versions/magento-2.3.6.js +22 -15
- package/lib/config/versions/magento-2.3.7-p1.js +22 -15
- package/lib/config/versions/magento-2.3.7-p2.js +22 -15
- package/lib/config/versions/magento-2.3.7-p3.js +22 -15
- package/lib/config/versions/magento-2.3.7-p4.js +22 -15
- package/lib/config/versions/magento-2.3.7.js +22 -15
- package/lib/config/versions/magento-2.4.0-p1.js +22 -15
- package/lib/config/versions/magento-2.4.0.js +22 -15
- package/lib/config/versions/magento-2.4.1-p1.js +23 -16
- package/lib/config/versions/magento-2.4.1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p2.js +23 -16
- package/lib/config/versions/magento-2.4.2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p1.js +23 -16
- package/lib/config/versions/magento-2.4.3-p2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p3.js +23 -16
- package/lib/config/versions/magento-2.4.3.js +23 -16
- package/lib/config/versions/magento-2.4.4-p1.js +23 -16
- package/lib/config/versions/magento-2.4.4-p2.js +23 -16
- package/lib/config/versions/magento-2.4.4.js +23 -16
- package/lib/config/versions/magento-2.4.5-p1.js +23 -16
- package/lib/config/versions/magento-2.4.5.js +23 -17
- package/lib/config/xml-parser.js +21 -20
- package/lib/errors/known-error.js +8 -6
- package/lib/errors/unknown-error.js +8 -6
- package/lib/tasks/cache/create-cache-folder.js +10 -10
- package/lib/tasks/cache/index.js +1 -1
- package/lib/tasks/cache/remove-cache-folder.js +9 -9
- package/lib/tasks/cleanup.js +22 -24
- package/lib/tasks/cli/create-bashrc-config.js +19 -11
- package/lib/tasks/cli/index.js +10 -13
- package/lib/tasks/composer/index.js +20 -15
- package/lib/tasks/composer/local-auth-json.js +32 -18
- package/lib/tasks/database/connect-to-database.js +71 -51
- package/lib/tasks/database/create-magento-database.js +7 -7
- package/lib/tasks/database/create-magento-user.js +33 -20
- package/lib/tasks/database/default-magento-database.js +1 -1
- package/lib/tasks/database/default-magento-user.js +2 -2
- package/lib/tasks/database/dump-theme-config.js +16 -12
- package/lib/tasks/database/fix-db.js +62 -52
- package/lib/tasks/database/import-dump-to-database.js +122 -85
- package/lib/tasks/database/import-remote-db/index.js +16 -18
- package/lib/tasks/database/import-remote-db/ssh/database-dump-command.js +2 -2
- package/lib/tasks/database/import-remote-db/ssh/index.js +34 -35
- package/lib/tasks/database/import-remote-db/ssh/readymage.js +41 -38
- package/lib/tasks/database/import-remote-db/ssh/regular-server.js +44 -46
- package/lib/tasks/database/index.js +1 -1
- package/lib/tasks/database/magento-tables.js +3 -3
- package/lib/tasks/database/restore-theme-config.js +26 -19
- package/lib/tasks/docker/api.d.ts +1 -1
- package/lib/tasks/docker/api.js +31 -33
- package/lib/tasks/docker/containers/container-api.d.ts +49 -14
- package/lib/tasks/docker/containers/container-api.js +112 -83
- package/lib/tasks/docker/containers/index.js +3 -3
- package/lib/tasks/docker/containers/tasks.js +171 -99
- package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +34 -25
- package/lib/tasks/docker/convert-legacy-volumes.js +91 -55
- package/lib/tasks/docker/convert-mysql-to-mariadb.js +178 -147
- package/lib/tasks/docker/image/image-api.d.ts +2 -3
- package/lib/tasks/docker/image/image-api.js +41 -34
- package/lib/tasks/docker/image/index.js +2 -2
- package/lib/tasks/docker/index.js +26 -21
- package/lib/tasks/docker/network/index.js +3 -3
- package/lib/tasks/docker/network/network-api.d.ts +11 -8
- package/lib/tasks/docker/network/network-api.js +53 -61
- package/lib/tasks/docker/network/tasks.js +41 -31
- package/lib/tasks/docker/project-image-builder.js +175 -92
- package/lib/tasks/docker/system/index.js +2 -2
- package/lib/tasks/docker/system/system-api.d.ts +2 -2
- package/lib/tasks/docker/system/system-api.js +16 -19
- package/lib/tasks/docker/volume/index.js +3 -3
- package/lib/tasks/docker/volume/tasks.js +63 -46
- package/lib/tasks/docker/volume/volume-api.d.ts +8 -5
- package/lib/tasks/docker/volume/volume-api.js +59 -76
- package/lib/tasks/execute.js +91 -55
- package/lib/tasks/file-system/create-mariadb-config.js +26 -11
- package/lib/tasks/file-system/create-nginx-config.js +18 -19
- package/lib/tasks/file-system/create-php-config.js +12 -8
- package/lib/tasks/file-system/create-php-debug-config.js +23 -18
- package/lib/tasks/file-system/create-php-fpm-config.js +14 -9
- package/lib/tasks/file-system/create-phpstorm-config/database-config.js +144 -112
- package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +69 -45
- package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +69 -70
- package/lib/tasks/file-system/create-phpstorm-config/index.js +28 -24
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +23 -23
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +26 -16
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +43 -34
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/inspection-tools-config.js +14 -6
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +53 -47
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +41 -12
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +33 -30
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +35 -38
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/keys.js +10 -10
- package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +33 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +28 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +53 -32
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-config.js +7 -7
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +37 -27
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +53 -31
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +42 -30
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/index.js +33 -20
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/php-docker-settings-config.js +3 -3
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/setup-php-docker-container-settings-config.js +27 -16
- package/lib/tasks/file-system/create-phpstorm-config/setup-xml-structure.js +14 -13
- package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +52 -34
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +41 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +39 -27
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +34 -30
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/mess-detector-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-code-sniffer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-cs-fixer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +42 -31
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +45 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-stan-project-configuration-config.js.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +35 -21
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/psalm-project-configuration-config.js.js +31 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +38 -28
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/workspace-config.js +5 -5
- package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +3 -2
- package/lib/tasks/file-system/create-ssl-terminator-config.js +46 -34
- package/lib/tasks/file-system/create-varnish-config.js +20 -23
- package/lib/tasks/file-system/create-vscode-config.js +66 -49
- package/lib/tasks/file-system/index.js +29 -25
- package/lib/tasks/import-dump.js +54 -45
- package/lib/tasks/link.js +24 -23
- package/lib/tasks/magento/enable-magento-composer-plugins.js +213 -149
- package/lib/tasks/magento/index.js +1 -1
- package/lib/tasks/magento/install-magento-project.js +158 -97
- package/lib/tasks/magento/remove-magento.js +30 -24
- package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +27 -15
- package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +23 -10
- package/lib/tasks/magento/setup-magento/create-admin.js +21 -13
- package/lib/tasks/magento/setup-magento/delete-admin-users.js +5 -5
- package/lib/tasks/magento/setup-magento/delete-customers.js +16 -10
- package/lib/tasks/magento/setup-magento/delete-orders.js +16 -10
- package/lib/tasks/magento/setup-magento/disable-2fa.js +11 -8
- package/lib/tasks/magento/setup-magento/disable-maintenance-mode.js +7 -7
- package/lib/tasks/magento/setup-magento/disable-page-builder.js +5 -4
- package/lib/tasks/magento/setup-magento/flush-redis-config.js +14 -8
- package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +21 -17
- package/lib/tasks/magento/setup-magento/index-products.js +4 -6
- package/lib/tasks/magento/setup-magento/index.js +54 -47
- package/lib/tasks/magento/setup-magento/install-magento.js +112 -79
- package/lib/tasks/magento/setup-magento/migrate-database.js +115 -96
- package/lib/tasks/magento/setup-magento/set-base-url.js +35 -21
- package/lib/tasks/magento/setup-magento/set-deployment-mode.js +15 -13
- package/lib/tasks/magento/setup-magento/set-mail-config.js +20 -14
- package/lib/tasks/magento/setup-magento/set-url-rewrite.js +13 -9
- package/lib/tasks/magento/setup-magento/upgrade-magento.js +30 -22
- package/lib/tasks/magento/setup-magento/urn-highlighter.js +11 -11
- package/lib/tasks/magento/setup-magento/varnish-config.js +42 -32
- package/lib/tasks/magento/setup-magento/waiting-for-redis.js +6 -8
- package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +108 -65
- package/lib/tasks/magento/uninstall-magento.js +19 -16
- package/lib/tasks/php/php-container.d.ts +19 -0
- package/lib/tasks/php/php-container.js +50 -46
- package/lib/tasks/php/update-env-php.js +50 -30
- package/lib/tasks/project-config/index.js +12 -8
- package/lib/tasks/requirements/composer-credentials.js +215 -112
- package/lib/tasks/requirements/docker/context.js +49 -37
- package/lib/tasks/requirements/docker/index.js +123 -89
- package/lib/tasks/requirements/docker/install-on-mac.js +21 -14
- package/lib/tasks/requirements/docker/install.js +63 -52
- package/lib/tasks/requirements/docker/performance.js +39 -24
- package/lib/tasks/requirements/docker/permissions.js +27 -17
- package/lib/tasks/requirements/docker/running-status.js +79 -66
- package/lib/tasks/requirements/docker/version.js +15 -11
- package/lib/tasks/requirements/index.js +33 -29
- package/lib/tasks/requirements/node-version.js +8 -8
- package/lib/tasks/requirements/php-version.js +14 -11
- package/lib/tasks/requirements/platform.js +42 -26
- package/lib/tasks/requirements/rosetta.js +15 -12
- package/lib/tasks/start.js +172 -148
- package/lib/tasks/status/index.js +155 -88
- package/lib/tasks/stop.js +22 -18
- package/lib/tasks/theme/build-theme.js +50 -33
- package/lib/tasks/theme/install-theme.js +31 -18
- package/lib/tasks/theme/link-theme.js +27 -21
- package/lib/tasks/theme/retrieve-theme-data.js +24 -18
- package/lib/tasks/theme/setup-themes.js +87 -59
- package/lib/tasks/theme/symlink-theme.js +44 -22
- package/lib/util/CSA-theme.js +23 -21
- package/lib/util/analytics.js +130 -75
- package/lib/util/arch.js +22 -18
- package/lib/util/clean-object.js +15 -10
- package/lib/util/config-file-validator.js +74 -55
- package/lib/util/config-php-json.js +34 -16
- package/lib/util/connection-string.js +41 -27
- package/lib/util/console-block.js +112 -65
- package/lib/util/database.js +56 -33
- package/lib/util/deepmerge.d.ts +1 -1
- package/lib/util/deepmerge.js +19 -28
- package/lib/util/dockerfile-builder/build-instructions.js +159 -143
- package/lib/util/dockerfile-builder/index.js +47 -73
- package/lib/util/dockerfile-builder/types.d.ts +2 -1
- package/lib/util/download-file.js +28 -16
- package/lib/util/env-php-json.js +42 -16
- package/lib/util/exec-async-command.d.ts +9 -9
- package/lib/util/exec-async-command.js +82 -59
- package/lib/util/exec-async.d.ts +2 -0
- package/lib/util/exec-async.js +12 -5
- package/lib/util/execute-in-container.js +22 -27
- package/lib/util/execute-sudo-command.js +11 -15
- package/lib/util/get-brew-bin-path.js +27 -23
- package/lib/util/get-installed-magento-version.js +22 -16
- package/lib/util/get-jsonfile-data.js +14 -9
- package/lib/util/install-dependencies-task.js +53 -41
- package/lib/util/instance-metadata.js +44 -29
- package/lib/util/ip.js +16 -12
- package/lib/util/is-running-root.js +6 -3
- package/lib/util/is-wsl.js +10 -10
- package/lib/util/macos-version.js +12 -11
- package/lib/util/magento-task.js +14 -9
- package/lib/util/match-filesystem.js +22 -16
- package/lib/util/move-file.js +40 -25
- package/lib/util/nginx-logs-parser.js +50 -39
- package/lib/util/open-browser.js +10 -5
- package/lib/util/os-platform.js +40 -32
- package/lib/util/path-exists-sync.js +10 -6
- package/lib/util/path-exists.js +6 -6
- package/lib/util/php-task.js +11 -10
- package/lib/util/portscanner.js +97 -85
- package/lib/util/prefix.js +31 -22
- package/lib/util/resolve-configuration-with-overrides.js +30 -15
- package/lib/util/rmdir-safe.js +15 -11
- package/lib/util/run-composer.js +16 -16
- package/lib/util/run-container-image.js +9 -4
- package/lib/util/run-magento.js +16 -17
- package/lib/util/run-php.js +16 -21
- package/lib/util/safe-regex-extract.js +8 -12
- package/lib/util/set-config.js +24 -15
- package/lib/util/sleep.js +7 -2
- package/lib/util/systemctl.js +62 -44
- package/lib/util/wait-for-it.js +42 -33
- package/lib/util/wait-for-logs.js +42 -35
- package/lib/util/xdg-open-exists.js +19 -19
- package/package.json +7 -3
- package/tsconfig.json +24 -0
- package/typings/context.d.ts +76 -34
- package/typings/index.d.ts +54 -20
- package/typings/override.d.ts +14 -0
- package/typings/phpstorm.d.ts +19 -19
- package/.prettierrc +0 -3
- package/lib/util/get-php-for-phpbrew.js +0 -30
- package/lib/util/request.js +0 -0
|
@@ -1,106 +1,155 @@
|
|
|
1
|
-
const path = require('path')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
-
const runComposerCommand = require('../../util/run-composer')
|
|
5
|
-
const matchFilesystem = require('../../util/match-filesystem')
|
|
6
|
-
const pathExists = require('../../util/path-exists')
|
|
7
|
-
const getJsonFileData = require('../../util/get-jsonfile-data')
|
|
8
|
-
const KnownError = require('../../errors/known-error')
|
|
9
|
-
const UnknownError = require('../../errors/unknown-error')
|
|
10
|
-
const { runPHPContainerCommand } = require('../php/php-container')
|
|
11
|
-
|
|
12
|
-
const magentoProductEnterpriseEdition = 'magento/product-enterprise-edition'
|
|
13
|
-
const magentoProductCommunityEdition = 'magento/product-community-edition'
|
|
1
|
+
const path = require('path')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
+
const runComposerCommand = require('../../util/run-composer')
|
|
5
|
+
const matchFilesystem = require('../../util/match-filesystem')
|
|
6
|
+
const pathExists = require('../../util/path-exists')
|
|
7
|
+
const getJsonFileData = require('../../util/get-jsonfile-data')
|
|
8
|
+
const KnownError = require('../../errors/known-error')
|
|
9
|
+
const UnknownError = require('../../errors/unknown-error')
|
|
10
|
+
const { runPHPContainerCommand } = require('../php/php-container')
|
|
11
|
+
|
|
12
|
+
const magentoProductEnterpriseEdition = 'magento/product-enterprise-edition'
|
|
13
|
+
const magentoProductCommunityEdition = 'magento/product-community-edition'
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @param {import('../../../typings/context').ListrContext} ctx
|
|
17
|
-
* @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext>} task
|
|
17
|
+
* @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext, any>} task
|
|
18
|
+
* @param {{ magentoEdition: string, magentoProductSelectedEdition: string, magentoPackageVersion: string }} param2
|
|
18
19
|
*/
|
|
19
|
-
const adjustComposerJson = async (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
magentoPackageVersion
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const adjustComposerJson = async (
|
|
21
|
+
ctx,
|
|
22
|
+
task,
|
|
23
|
+
{ magentoEdition, magentoProductSelectedEdition, magentoPackageVersion }
|
|
24
|
+
) => {
|
|
25
|
+
/**
|
|
26
|
+
* @type {{ repositories?: { type: string, url: string }[] | Record<string, { type: string, url: string }>, require: Record<string, string> } | null}
|
|
27
|
+
*/
|
|
28
|
+
const composerData = await getJsonFileData(
|
|
29
|
+
path.join(ctx.config.baseConfig.magentoDir, 'composer.json')
|
|
30
|
+
)
|
|
25
31
|
|
|
26
32
|
// fix composer magento repository
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
if (
|
|
34
|
+
composerData &&
|
|
35
|
+
(!composerData.repositories ||
|
|
36
|
+
(Array.isArray(composerData.repositories) &&
|
|
37
|
+
!composerData.repositories.some(
|
|
38
|
+
(repo) =>
|
|
39
|
+
repo.type === 'composer' &&
|
|
40
|
+
repo.url.includes('repo.magento.com')
|
|
41
|
+
)) ||
|
|
42
|
+
(typeof composerData.repositories === 'object' &&
|
|
43
|
+
!Object.values(composerData.repositories).some(
|
|
44
|
+
(repo) =>
|
|
45
|
+
repo.type === 'composer' &&
|
|
46
|
+
repo.url.includes('repo.magento.com')
|
|
47
|
+
)))
|
|
48
|
+
) {
|
|
49
|
+
task.output =
|
|
50
|
+
'No Magento repository is set in composer.json! Setting up...'
|
|
51
|
+
await runComposerCommand(
|
|
52
|
+
ctx,
|
|
53
|
+
'config repo.0 composer https://repo.magento.com',
|
|
54
|
+
{
|
|
55
|
+
callback: !ctx.verbose
|
|
56
|
+
? undefined
|
|
57
|
+
: (t) => {
|
|
58
|
+
task.output = t
|
|
59
|
+
}
|
|
38
60
|
}
|
|
39
|
-
|
|
61
|
+
)
|
|
40
62
|
}
|
|
41
63
|
|
|
42
64
|
// if composer-root-update-plugin is not installed in composer, install it.
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
|
|
65
|
+
if (
|
|
66
|
+
composerData &&
|
|
67
|
+
!composerData.require['magento/composer-root-update-plugin']
|
|
68
|
+
) {
|
|
69
|
+
task.output = 'Installing magento/composer-root-update-plugin!'
|
|
70
|
+
await runComposerCommand(
|
|
71
|
+
ctx,
|
|
72
|
+
'require magento/composer-root-update-plugin:^1',
|
|
46
73
|
{
|
|
47
|
-
callback: !ctx.verbose
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
74
|
+
callback: !ctx.verbose
|
|
75
|
+
? undefined
|
|
76
|
+
: (t) => {
|
|
77
|
+
task.output = t
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
)
|
|
51
81
|
}
|
|
52
82
|
|
|
53
83
|
// if for some reason both editions are installed, throw an error
|
|
54
|
-
if (
|
|
55
|
-
&&
|
|
56
|
-
|
|
84
|
+
if (
|
|
85
|
+
composerData &&
|
|
86
|
+
composerData.require[magentoProductCommunityEdition] &&
|
|
87
|
+
composerData.require[magentoProductEnterpriseEdition]
|
|
57
88
|
) {
|
|
58
89
|
throw new KnownError(`Somehow, both Magento editions are installed!
|
|
59
|
-
Please choose only one edition an modify your composer.json manually!`)
|
|
90
|
+
Please choose only one edition an modify your composer.json manually!`)
|
|
60
91
|
}
|
|
61
92
|
|
|
62
|
-
const oppositeEdition = [
|
|
63
|
-
|
|
93
|
+
const oppositeEdition = [
|
|
94
|
+
magentoProductCommunityEdition,
|
|
95
|
+
magentoProductEnterpriseEdition
|
|
96
|
+
].find((edition) => edition !== magentoProductSelectedEdition)
|
|
64
97
|
|
|
65
98
|
// if opposite edition is installed than selected in config file, throw an error
|
|
66
|
-
if (
|
|
99
|
+
if (
|
|
100
|
+
oppositeEdition &&
|
|
101
|
+
composerData &&
|
|
102
|
+
composerData.require[oppositeEdition]
|
|
103
|
+
) {
|
|
67
104
|
throw new KnownError(`You have installed ${oppositeEdition} but selected magento.edition as ${magentoEdition} in config file!
|
|
68
105
|
|
|
69
|
-
Change magento edition in config file or manually reinstall correct magento edition!`)
|
|
106
|
+
Change magento edition in config file or manually reinstall correct magento edition!`)
|
|
70
107
|
}
|
|
71
108
|
|
|
72
109
|
// if magento package is not installed in composer, require it.
|
|
73
110
|
if (composerData && !composerData.require[magentoProductSelectedEdition]) {
|
|
74
|
-
task.output = `Installing ${magentoProductSelectedEdition}=${magentoPackageVersion}
|
|
75
|
-
await runComposerCommand(
|
|
111
|
+
task.output = `Installing ${magentoProductSelectedEdition}=${magentoPackageVersion}!`
|
|
112
|
+
await runComposerCommand(
|
|
113
|
+
ctx,
|
|
114
|
+
`require ${magentoProductSelectedEdition}:${magentoPackageVersion}`,
|
|
76
115
|
{
|
|
77
|
-
callback: !ctx.verbose
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
116
|
+
callback: !ctx.verbose
|
|
117
|
+
? undefined
|
|
118
|
+
: (t) => {
|
|
119
|
+
task.output = t
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
)
|
|
81
123
|
}
|
|
82
|
-
}
|
|
124
|
+
}
|
|
83
125
|
|
|
84
126
|
/**
|
|
85
127
|
* @param {import('../../../typings/context').ListrContext} ctx
|
|
86
|
-
* @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext>} task
|
|
128
|
+
* @param {import('listr2').ListrTaskWrapper<import('../../../typings/context').ListrContext, any>} task
|
|
129
|
+
* @param {{ magentoProject: string, magentoPackageVersion: string }} param2
|
|
87
130
|
*/
|
|
88
|
-
const createMagentoProject = async (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
131
|
+
const createMagentoProject = async (
|
|
132
|
+
ctx,
|
|
133
|
+
task,
|
|
134
|
+
{ magentoProject, magentoPackageVersion }
|
|
135
|
+
) => {
|
|
136
|
+
const tempDir = `/tmp/magento-tmpdir-${Date.now()}`
|
|
93
137
|
const installCommand = [
|
|
94
138
|
'create-project',
|
|
95
139
|
`--repository=https://repo.magento.com/ ${magentoProject}=${magentoPackageVersion}`,
|
|
96
140
|
'--no-install',
|
|
97
141
|
`"${tempDir}"`
|
|
98
|
-
]
|
|
142
|
+
]
|
|
99
143
|
|
|
100
|
-
await runPHPContainerCommand(
|
|
144
|
+
await runPHPContainerCommand(
|
|
145
|
+
ctx,
|
|
146
|
+
`bash -c 'mkdir ${tempDir} && \
|
|
101
147
|
composer ${installCommand.join(' ')} && \
|
|
102
|
-
mv ${tempDir}/composer.json ${
|
|
103
|
-
|
|
148
|
+
mv ${tempDir}/composer.json ${
|
|
149
|
+
ctx.config.baseConfig.containerMagentoDir
|
|
150
|
+
}/composer.json'`
|
|
151
|
+
)
|
|
152
|
+
}
|
|
104
153
|
|
|
105
154
|
/**
|
|
106
155
|
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
@@ -108,75 +157,87 @@ mv ${tempDir}/composer.json ${ctx.config.baseConfig.containerMagentoDir}/compose
|
|
|
108
157
|
const installMagentoProject = () => ({
|
|
109
158
|
title: 'Installing Magento Project',
|
|
110
159
|
task: async (ctx, task) => {
|
|
111
|
-
const {
|
|
160
|
+
const {
|
|
161
|
+
config: { baseConfig, overridenConfiguration }
|
|
162
|
+
} = ctx
|
|
112
163
|
const {
|
|
113
164
|
magento: { edition: magentoEdition },
|
|
114
165
|
magentoVersion: magentoPackageVersion
|
|
115
|
-
} = overridenConfiguration
|
|
116
|
-
const isEnterprise = magentoEdition === 'enterprise'
|
|
117
|
-
const magentoProductSelectedEdition = isEnterprise
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
166
|
+
} = overridenConfiguration
|
|
167
|
+
const isEnterprise = magentoEdition === 'enterprise'
|
|
168
|
+
const magentoProductSelectedEdition = isEnterprise
|
|
169
|
+
? magentoProductEnterpriseEdition
|
|
170
|
+
: magentoProductCommunityEdition
|
|
171
|
+
const magentoProject = `magento/project-${magentoEdition}-edition`
|
|
172
|
+
|
|
173
|
+
if (
|
|
174
|
+
await pathExists(path.join(baseConfig.magentoDir, 'composer.json'))
|
|
175
|
+
) {
|
|
121
176
|
await adjustComposerJson(ctx, task, {
|
|
122
177
|
magentoEdition,
|
|
123
178
|
magentoPackageVersion,
|
|
124
179
|
magentoProductSelectedEdition
|
|
125
|
-
})
|
|
180
|
+
})
|
|
126
181
|
}
|
|
127
182
|
|
|
128
183
|
const isFsMatching = await matchFilesystem(baseConfig.magentoDir, {
|
|
129
|
-
'app/etc': [
|
|
130
|
-
'env.php'
|
|
131
|
-
],
|
|
184
|
+
'app/etc': ['env.php'],
|
|
132
185
|
'bin/magento': true,
|
|
133
186
|
vendor: true,
|
|
134
187
|
'composer.json': true,
|
|
135
188
|
'composer.lock': true
|
|
136
|
-
})
|
|
189
|
+
})
|
|
137
190
|
|
|
138
191
|
if (isFsMatching) {
|
|
139
|
-
ctx.magentoFirstInstall = false
|
|
140
|
-
task.skip()
|
|
141
|
-
return
|
|
192
|
+
ctx.magentoFirstInstall = false
|
|
193
|
+
task.skip()
|
|
194
|
+
return
|
|
142
195
|
}
|
|
143
196
|
|
|
144
|
-
task.title = `Installing Magento ${magentoPackageVersion}
|
|
145
|
-
task.output = 'Creating Magento project'
|
|
197
|
+
task.title = `Installing Magento ${magentoPackageVersion}`
|
|
198
|
+
task.output = 'Creating Magento project'
|
|
146
199
|
|
|
147
|
-
if (!await pathExists(path.join(process.cwd(), 'composer.json'))) {
|
|
200
|
+
if (!(await pathExists(path.join(process.cwd(), 'composer.json')))) {
|
|
148
201
|
await createMagentoProject(ctx, task, {
|
|
149
202
|
magentoProject,
|
|
150
203
|
magentoPackageVersion
|
|
151
|
-
})
|
|
204
|
+
})
|
|
152
205
|
}
|
|
153
206
|
|
|
154
|
-
if (!await pathExists(path.join(process.cwd(), 'app', 'etc'))) {
|
|
207
|
+
if (!(await pathExists(path.join(process.cwd(), 'app', 'etc')))) {
|
|
155
208
|
await fs.promises.mkdir(path.join(process.cwd(), 'app', 'etc'), {
|
|
156
209
|
recursive: true
|
|
157
|
-
})
|
|
210
|
+
})
|
|
158
211
|
}
|
|
159
212
|
|
|
160
213
|
try {
|
|
161
|
-
await runComposerCommand(ctx, 'install',
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
214
|
+
await runComposerCommand(ctx, 'install', {
|
|
215
|
+
callback: !ctx.verbose
|
|
216
|
+
? undefined
|
|
217
|
+
: (t) => {
|
|
218
|
+
task.output = t
|
|
219
|
+
}
|
|
220
|
+
})
|
|
167
221
|
} catch (e) {
|
|
168
|
-
if (
|
|
222
|
+
if (
|
|
223
|
+
e instanceof UnknownError &&
|
|
224
|
+
e.message.includes('man-in-the-middle attack')
|
|
225
|
+
) {
|
|
169
226
|
throw new KnownError(`Probably you haven't setup pubkeys in composer.
|
|
170
|
-
Please run ${logger.style.command(
|
|
227
|
+
Please run ${logger.style.command(
|
|
228
|
+
'composer diagnose'
|
|
229
|
+
)} in cli to get mode.\n\n${e}`)
|
|
171
230
|
}
|
|
172
231
|
|
|
173
|
-
throw new UnknownError(
|
|
232
|
+
throw new UnknownError(
|
|
233
|
+
`Unexpected error during composer install.\n\n${e}`
|
|
234
|
+
)
|
|
174
235
|
}
|
|
175
|
-
ctx.magentoFirstInstall = true
|
|
236
|
+
ctx.magentoFirstInstall = true
|
|
176
237
|
},
|
|
177
238
|
options: {
|
|
178
239
|
bottomBar: 10
|
|
179
240
|
}
|
|
180
|
-
})
|
|
241
|
+
})
|
|
181
242
|
|
|
182
|
-
module.exports = installMagentoProject
|
|
243
|
+
module.exports = installMagentoProject
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const fs = require('fs')
|
|
2
|
-
const path = require('path')
|
|
3
|
-
const pathExists = require('../../util/path-exists')
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const path = require('path')
|
|
3
|
+
const pathExists = require('../../util/path-exists')
|
|
4
4
|
|
|
5
5
|
const magentoFiles = [
|
|
6
6
|
'.htaccess',
|
|
@@ -30,35 +30,41 @@ const magentoFiles = [
|
|
|
30
30
|
'setup',
|
|
31
31
|
'var',
|
|
32
32
|
'vendor'
|
|
33
|
-
]
|
|
33
|
+
]
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
* @
|
|
36
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
37
37
|
*/
|
|
38
38
|
const removeMagento = () => ({
|
|
39
39
|
title: 'Remove magento application folder',
|
|
40
40
|
skip: async (ctx) => {
|
|
41
|
-
const {
|
|
42
|
-
|
|
41
|
+
const {
|
|
42
|
+
config: { baseConfig }
|
|
43
|
+
} = ctx
|
|
44
|
+
const appPathExists = await pathExists(baseConfig.magentoDir)
|
|
43
45
|
|
|
44
|
-
return !(appPathExists && ctx.force)
|
|
46
|
+
return !(appPathExists && ctx.force)
|
|
45
47
|
},
|
|
46
48
|
task: async (ctx) => {
|
|
47
|
-
const {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
const {
|
|
50
|
+
config: { baseConfig }
|
|
51
|
+
} = ctx
|
|
52
|
+
await Promise.all(
|
|
53
|
+
magentoFiles.map(async (fileName) => {
|
|
54
|
+
const filePath = path.join(baseConfig.magentoDir, fileName)
|
|
55
|
+
const fileExists = await pathExists(filePath)
|
|
56
|
+
if (!fileExists) {
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
const file = await fs.promises.stat(filePath)
|
|
60
|
+
if (file.isFile()) {
|
|
61
|
+
await fs.promises.unlink(filePath)
|
|
62
|
+
} else if (file.isDirectory()) {
|
|
63
|
+
await fs.promises.rmdir(filePath, { recursive: true })
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
)
|
|
61
67
|
}
|
|
62
|
-
})
|
|
68
|
+
})
|
|
63
69
|
|
|
64
|
-
module.exports = removeMagento
|
|
70
|
+
module.exports = removeMagento
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const envPhpToJson = require('../../../util/env-php-json')
|
|
2
|
-
const magentoTask = require('../../../util/magento-task')
|
|
1
|
+
const envPhpToJson = require('../../../util/env-php-json')
|
|
2
|
+
const magentoTask = require('../../../util/magento-task')
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
@@ -7,24 +7,36 @@ const magentoTask = require('../../../util/magento-task');
|
|
|
7
7
|
const disableFullPageCache = () => ({
|
|
8
8
|
title: 'Adjusting full_page cache setting',
|
|
9
9
|
task: async (ctx, task) => {
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const envData = await envPhpToJson(ctx)
|
|
11
|
+
if (
|
|
12
|
+
envData &&
|
|
13
|
+
envData.cache_types &&
|
|
14
|
+
typeof envData.cache_types.full_page === 'number'
|
|
15
|
+
) {
|
|
16
|
+
if (
|
|
17
|
+
envData.cache_types.full_page !== 0 &&
|
|
18
|
+
!ctx.config.overridenConfiguration.configuration.varnish.enabled
|
|
19
|
+
) {
|
|
20
|
+
task.title = 'Disabling full_page cache in Magento'
|
|
21
|
+
return task.newListr(magentoTask('cache:disable full_page'))
|
|
15
22
|
}
|
|
16
23
|
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
if (
|
|
25
|
+
ctx.config.overridenConfiguration.configuration.varnish
|
|
26
|
+
.enabled &&
|
|
27
|
+
envData.cache_types.full_page !== 1
|
|
28
|
+
) {
|
|
29
|
+
task.title =
|
|
30
|
+
'Enabling full_page cache in Magento (Varnish is enabled)'
|
|
31
|
+
return task.newListr(magentoTask('cache:enable full_page'))
|
|
20
32
|
}
|
|
21
33
|
} else {
|
|
22
|
-
task.skip('full_page cache type is not set in env.php')
|
|
23
|
-
return
|
|
34
|
+
task.skip('full_page cache type is not set in env.php')
|
|
35
|
+
return
|
|
24
36
|
}
|
|
25
37
|
|
|
26
|
-
task.skip()
|
|
38
|
+
task.skip()
|
|
27
39
|
}
|
|
28
|
-
})
|
|
40
|
+
})
|
|
29
41
|
|
|
30
|
-
module.exports = disableFullPageCache
|
|
42
|
+
module.exports = disableFullPageCache
|
|
@@ -1,18 +1,31 @@
|
|
|
1
|
-
const { updateTableValues, isTableExists } = require('../../../util/database')
|
|
1
|
+
const { updateTableValues, isTableExists } = require('../../../util/database')
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
5
5
|
*/
|
|
6
6
|
module.exports = () => ({
|
|
7
7
|
title: 'Configuring Elasticsearch',
|
|
8
|
-
skip: async (ctx) =>
|
|
8
|
+
skip: async (ctx) =>
|
|
9
|
+
!(await isTableExists('magento', 'core_config_data', ctx)),
|
|
9
10
|
task: async (ctx, task) => {
|
|
10
|
-
const { ports, databaseConnection, isDockerDesktop } = ctx
|
|
11
|
-
const hostMachine = !isDockerDesktop
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const { ports, databaseConnection, isDockerDesktop } = ctx
|
|
12
|
+
const hostMachine = !isDockerDesktop
|
|
13
|
+
? '127.0.0.1'
|
|
14
|
+
: 'host.docker.internal'
|
|
15
|
+
await updateTableValues(
|
|
16
|
+
'core_config_data',
|
|
17
|
+
[
|
|
18
|
+
{ path: 'catalog/search/engine', value: 'elasticsearch7' },
|
|
19
|
+
{
|
|
20
|
+
path: 'catalog/search/elasticsearch7_server_hostname',
|
|
21
|
+
value: hostMachine
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: 'catalog/search/elasticsearch7_server_port',
|
|
25
|
+
value: `${ports.elasticsearch}`
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
{ databaseConnection, task }
|
|
29
|
+
)
|
|
17
30
|
}
|
|
18
|
-
})
|
|
31
|
+
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const runMagentoCommand = require('../../../util/run-magento')
|
|
1
|
+
const runMagentoCommand = require('../../../util/run-magento')
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
@@ -6,23 +6,31 @@ const runMagentoCommand = require('../../../util/run-magento');
|
|
|
6
6
|
module.exports = () => ({
|
|
7
7
|
title: 'Creating admin user',
|
|
8
8
|
task: async (ctx, task) => {
|
|
9
|
-
const {
|
|
10
|
-
|
|
9
|
+
const {
|
|
10
|
+
config: { magentoConfiguration }
|
|
11
|
+
} = ctx
|
|
12
|
+
const [[{ userCount }]] = await ctx.databaseConnection.query(
|
|
13
|
+
`
|
|
11
14
|
SELECT count(*) AS userCount
|
|
12
15
|
FROM admin_user
|
|
13
16
|
WHERE username = ?;
|
|
14
|
-
`,
|
|
17
|
+
`,
|
|
18
|
+
[magentoConfiguration.user]
|
|
19
|
+
)
|
|
15
20
|
|
|
16
21
|
if (userCount === 1) {
|
|
17
|
-
task.skip()
|
|
18
|
-
return
|
|
22
|
+
task.skip()
|
|
23
|
+
return
|
|
19
24
|
}
|
|
20
25
|
|
|
21
|
-
await runMagentoCommand(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
--admin-
|
|
25
|
-
--admin-
|
|
26
|
-
--admin-
|
|
26
|
+
await runMagentoCommand(
|
|
27
|
+
ctx,
|
|
28
|
+
`admin:user:create \
|
|
29
|
+
--admin-firstname='${magentoConfiguration.first_name}' \
|
|
30
|
+
--admin-lastname='${magentoConfiguration.last_name}' \
|
|
31
|
+
--admin-email='${magentoConfiguration.email}' \
|
|
32
|
+
--admin-user='${magentoConfiguration.user}' \
|
|
33
|
+
--admin-password='${magentoConfiguration.password}'`
|
|
34
|
+
)
|
|
27
35
|
}
|
|
28
|
-
})
|
|
36
|
+
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { isTableExists } = require('../../../util/database')
|
|
1
|
+
const { isTableExists } = require('../../../util/database')
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
@@ -7,11 +7,11 @@ const deleteAdminUsers = () => ({
|
|
|
7
7
|
title: 'Deleting old admin users',
|
|
8
8
|
skip: async (ctx) => !(await isTableExists('magento', 'admin_user', ctx)),
|
|
9
9
|
task: async (ctx) => {
|
|
10
|
-
const { databaseConnection } = ctx
|
|
10
|
+
const { databaseConnection } = ctx
|
|
11
11
|
await databaseConnection.query(`
|
|
12
12
|
TRUNCATE TABLE admin_user;
|
|
13
|
-
`)
|
|
13
|
+
`)
|
|
14
14
|
}
|
|
15
|
-
})
|
|
15
|
+
})
|
|
16
16
|
|
|
17
|
-
module.exports = deleteAdminUsers
|
|
17
|
+
module.exports = deleteAdminUsers
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { customerTables } = require('../../database/magento-tables')
|
|
1
|
+
const { customerTables } = require('../../database/magento-tables')
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
@@ -6,21 +6,27 @@ const { customerTables } = require('../../database/magento-tables');
|
|
|
6
6
|
const deleteCustomers = () => ({
|
|
7
7
|
title: 'Deleting customers',
|
|
8
8
|
task: async (ctx, task) => {
|
|
9
|
-
const { databaseConnection, withCustomersData } = ctx
|
|
9
|
+
const { databaseConnection, withCustomersData } = ctx
|
|
10
10
|
|
|
11
11
|
if (withCustomersData) {
|
|
12
|
-
task.skip()
|
|
13
|
-
return
|
|
12
|
+
task.skip()
|
|
13
|
+
return
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
const [rows] = await databaseConnection.query(
|
|
16
|
+
const [rows] = await databaseConnection.query(
|
|
17
|
+
'select TABLE_NAME from information_schema.TABLES;'
|
|
18
|
+
)
|
|
17
19
|
|
|
18
20
|
await Promise.all(
|
|
19
21
|
customerTables
|
|
20
|
-
.filter((tableName) =>
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
.filter((tableName) =>
|
|
23
|
+
rows.some((row) => row.TABLE_NAME === tableName)
|
|
24
|
+
)
|
|
25
|
+
.map((tableName) =>
|
|
26
|
+
databaseConnection.query(`TRUNCATE TABLE \`${tableName}\`;`)
|
|
27
|
+
)
|
|
28
|
+
)
|
|
23
29
|
}
|
|
24
|
-
})
|
|
30
|
+
})
|
|
25
31
|
|
|
26
|
-
module.exports = deleteCustomers
|
|
32
|
+
module.exports = deleteCustomers
|