@scandipwa/magento-scripts 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -157
- 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 +3 -3
- package/lib/config/services/mariadb/versions/mariadb-10.3.js +3 -3
- package/lib/config/services/mariadb/versions/mariadb-10.4.js +3 -3
- 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 +2 -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 +18 -10
- 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 +40 -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 +14 -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 +63 -54
- 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 +8 -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 +44 -19
- 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,51 +1,58 @@
|
|
|
1
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
2
|
-
const os = require('os')
|
|
3
|
-
const { cmaGlobalConfig } = require('../../../config/cma-config')
|
|
4
|
-
const { getCachedPorts } = require('../../../config/get-port-config')
|
|
5
|
-
const { getSystemConfigTask } = require('../../../config/system-config')
|
|
6
|
-
const UnknownError = require('../../../errors/unknown-error')
|
|
7
|
-
const { execCommandTask } = require('../../../util/exec-async-command')
|
|
8
|
-
const createCacheFolder = require('../../cache/create-cache-folder')
|
|
9
|
-
const { dockerApi } = require('../../docker')
|
|
10
|
-
const { stopContainers } = require('../../docker/containers')
|
|
11
|
-
const { getDockerEngineAndDesktopServiceStatus } = require('./running-status')
|
|
12
|
-
const getMagentoVersionConfig = require('../../../config/get-magento-version-config')
|
|
13
|
-
const checkConfigurationFile = require('../../../config/check-configuration-file')
|
|
14
|
-
const getProjectConfiguration = require('../../../config/get-project-configuration')
|
|
15
|
-
const getDockerVersion = require('./version')
|
|
1
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
2
|
+
const os = require('os')
|
|
3
|
+
const { cmaGlobalConfig } = require('../../../config/cma-config')
|
|
4
|
+
const { getCachedPorts } = require('../../../config/get-port-config')
|
|
5
|
+
const { getSystemConfigTask } = require('../../../config/system-config')
|
|
6
|
+
const UnknownError = require('../../../errors/unknown-error')
|
|
7
|
+
const { execCommandTask } = require('../../../util/exec-async-command')
|
|
8
|
+
const createCacheFolder = require('../../cache/create-cache-folder')
|
|
9
|
+
const { dockerApi } = require('../../docker')
|
|
10
|
+
const { stopContainers } = require('../../docker/containers')
|
|
11
|
+
const { getDockerEngineAndDesktopServiceStatus } = require('./running-status')
|
|
12
|
+
const getMagentoVersionConfig = require('../../../config/get-magento-version-config')
|
|
13
|
+
const checkConfigurationFile = require('../../../config/check-configuration-file')
|
|
14
|
+
const getProjectConfiguration = require('../../../config/get-project-configuration')
|
|
15
|
+
const getDockerVersion = require('./version')
|
|
16
16
|
|
|
17
|
-
const USE_DEFAULT_DOCKER_DESKTOP_CONTEXT_ANSWER =
|
|
17
|
+
const USE_DEFAULT_DOCKER_DESKTOP_CONTEXT_ANSWER =
|
|
18
|
+
'useDefaultDockerDesktopContext'
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
|
-
* @
|
|
21
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
21
22
|
*/
|
|
22
23
|
const checkDockerDesktopContext = () => ({
|
|
23
24
|
task: async (ctx, task) => {
|
|
24
25
|
if (os.platform() !== 'linux' || !ctx.isDockerDesktop) {
|
|
25
|
-
task.skip()
|
|
26
|
-
return
|
|
26
|
+
task.skip()
|
|
27
|
+
return
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
task.title = 'Checking contexts for Docker Desktop'
|
|
30
|
+
task.title = 'Checking contexts for Docker Desktop'
|
|
30
31
|
|
|
31
|
-
const contexts = await dockerApi.context({ formatToJSON: true })
|
|
32
|
-
const currentlyUsedContext = contexts.find((c) => c.Current)
|
|
32
|
+
const contexts = await dockerApi.context({ formatToJSON: true })
|
|
33
|
+
const currentlyUsedContext = contexts.find((c) => c.Current)
|
|
33
34
|
|
|
34
35
|
if (!currentlyUsedContext) {
|
|
35
|
-
throw new UnknownError(
|
|
36
|
+
throw new UnknownError("We haven't found contexts in Docker...")
|
|
36
37
|
}
|
|
37
38
|
|
|
38
|
-
const { engine } = await getDockerEngineAndDesktopServiceStatus()
|
|
39
|
+
const { engine } = await getDockerEngineAndDesktopServiceStatus()
|
|
39
40
|
|
|
40
41
|
if (currentlyUsedContext.Name !== 'default' && engine.exists) {
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
if (
|
|
43
|
+
cmaGlobalConfig.get(
|
|
44
|
+
USE_DEFAULT_DOCKER_DESKTOP_CONTEXT_ANSWER
|
|
45
|
+
) === false
|
|
46
|
+
) {
|
|
47
|
+
task.skip()
|
|
48
|
+
return
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
const confirmContextChange = await task.prompt({
|
|
47
52
|
type: 'Select',
|
|
48
|
-
message: `Do you want to change current Docker Desktop context (${logger.style.code(
|
|
53
|
+
message: `Do you want to change current Docker Desktop context (${logger.style.code(
|
|
54
|
+
currentlyUsedContext.Name
|
|
55
|
+
)}) to ${logger.style.code('default')}?`,
|
|
49
56
|
choices: [
|
|
50
57
|
{
|
|
51
58
|
name: 'yes',
|
|
@@ -53,19 +60,24 @@ const checkDockerDesktopContext = () => ({
|
|
|
53
60
|
},
|
|
54
61
|
{
|
|
55
62
|
name: 'no',
|
|
56
|
-
message:
|
|
63
|
+
message:
|
|
64
|
+
"No, I don't know what this means, but you can ask again on next start."
|
|
57
65
|
},
|
|
58
66
|
{
|
|
59
67
|
name: 'skip',
|
|
60
|
-
|
|
61
|
-
message:
|
|
68
|
+
|
|
69
|
+
message:
|
|
70
|
+
"I do know what this means and I DON'T want to change context for Docker. Also, save this answer to never ask again."
|
|
62
71
|
}
|
|
63
72
|
]
|
|
64
|
-
})
|
|
73
|
+
})
|
|
65
74
|
|
|
66
75
|
if (confirmContextChange === 'skip') {
|
|
67
|
-
cmaGlobalConfig.set(
|
|
68
|
-
|
|
76
|
+
cmaGlobalConfig.set(
|
|
77
|
+
USE_DEFAULT_DOCKER_DESKTOP_CONTEXT_ANSWER,
|
|
78
|
+
false
|
|
79
|
+
)
|
|
80
|
+
task.skip()
|
|
69
81
|
}
|
|
70
82
|
|
|
71
83
|
if (confirmContextChange === 'yes') {
|
|
@@ -79,10 +91,10 @@ const checkDockerDesktopContext = () => ({
|
|
|
79
91
|
stopContainers(),
|
|
80
92
|
execCommandTask('docker context use default'),
|
|
81
93
|
getDockerVersion()
|
|
82
|
-
])
|
|
94
|
+
])
|
|
83
95
|
}
|
|
84
96
|
}
|
|
85
97
|
}
|
|
86
|
-
})
|
|
98
|
+
})
|
|
87
99
|
|
|
88
|
-
module.exports = checkDockerDesktopContext
|
|
100
|
+
module.exports = checkDockerDesktopContext
|
|
@@ -1,51 +1,70 @@
|
|
|
1
|
-
const os = require('os')
|
|
2
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
3
|
-
const { cmaGlobalConfig } = require('../../../config/cma-config')
|
|
4
|
-
const KnownError = require('../../../errors/known-error')
|
|
5
|
-
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
6
|
-
const openBrowser = require('../../../util/open-browser')
|
|
7
|
-
const checkDockerDesktopContext = require('./context')
|
|
8
|
-
const { installDockerEngine } = require('./install')
|
|
9
|
-
const installDockerOnMac = require('./install-on-mac')
|
|
10
|
-
const { checkDockerPerformance } = require('./performance')
|
|
11
|
-
const { checkDockerSocketPermissions } = require('./permissions')
|
|
12
|
-
const {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
1
|
+
const os = require('os')
|
|
2
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
3
|
+
const { cmaGlobalConfig } = require('../../../config/cma-config')
|
|
4
|
+
const KnownError = require('../../../errors/known-error')
|
|
5
|
+
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
6
|
+
const openBrowser = require('../../../util/open-browser')
|
|
7
|
+
const checkDockerDesktopContext = require('./context')
|
|
8
|
+
const { installDockerEngine } = require('./install')
|
|
9
|
+
const installDockerOnMac = require('./install-on-mac')
|
|
10
|
+
const { checkDockerPerformance } = require('./performance')
|
|
11
|
+
const { checkDockerSocketPermissions } = require('./permissions')
|
|
12
|
+
const {
|
|
13
|
+
checkDockerStatus,
|
|
14
|
+
getDockerEngineAndDesktopServiceStatus
|
|
15
|
+
} = require('./running-status')
|
|
16
|
+
const getDockerVersion = require('./version')
|
|
17
|
+
const getIsWsl = require('../../../util/is-wsl')
|
|
17
18
|
|
|
19
|
+
const USE_DOCKER_ENGINE_WITH_DOCKER_DESKTOP_ANSWER =
|
|
20
|
+
'useDockerEngineWithDockerDesktop'
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @param {import('listr2').ListrTaskWrapper<import('../../../../typings/context').ListrContext, any>} task
|
|
24
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
25
|
+
*/
|
|
18
26
|
const setVersionInContextTask = (task) => ({
|
|
19
27
|
task: (ctx) => {
|
|
20
|
-
if (
|
|
21
|
-
|
|
28
|
+
if (
|
|
29
|
+
os.platform() === 'darwin' &&
|
|
30
|
+
ctx.dockerServerData &&
|
|
31
|
+
ctx.dockerServerData.Platform &&
|
|
32
|
+
ctx.dockerServerData.Platform.Name
|
|
33
|
+
) {
|
|
34
|
+
task.title = `Using ${ctx.dockerServerData.Platform.Name} for Mac`
|
|
22
35
|
} else {
|
|
23
|
-
task.title = `Using Docker version ${ctx.dockerVersion}
|
|
36
|
+
task.title = `Using Docker version ${ctx.dockerVersion}`
|
|
24
37
|
}
|
|
25
38
|
}
|
|
26
|
-
})
|
|
39
|
+
})
|
|
27
40
|
|
|
41
|
+
/**
|
|
42
|
+
* @param {import('listr2').ListrTaskWrapper<import('../../../../typings/context').ListrContext, any>} task
|
|
43
|
+
* @param {{ skipPrompt?: boolean }} param1
|
|
44
|
+
*/
|
|
28
45
|
const dockerInstallPromptLinux = async (task, { skipPrompt = false } = {}) => {
|
|
29
|
-
const automaticallyInstallDocker = skipPrompt
|
|
30
|
-
|
|
31
|
-
|
|
46
|
+
const automaticallyInstallDocker = skipPrompt
|
|
47
|
+
? 'yes'
|
|
48
|
+
: await task.prompt({
|
|
49
|
+
type: 'Select',
|
|
50
|
+
message: `You don't have Docker installed!
|
|
32
51
|
Do you want to install it automatically?
|
|
33
52
|
`,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
choices: [
|
|
54
|
+
{
|
|
55
|
+
name: 'yes',
|
|
56
|
+
message: 'Yes, I to install Docker automatically'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'no',
|
|
60
|
+
message: 'No, I want to install Docker myself'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'skip',
|
|
64
|
+
message: 'Skip installing Docker'
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
})
|
|
49
68
|
|
|
50
69
|
if (automaticallyInstallDocker === 'yes') {
|
|
51
70
|
return task.newListr([
|
|
@@ -54,7 +73,7 @@ Do you want to install it automatically?
|
|
|
54
73
|
getDockerVersion(),
|
|
55
74
|
{
|
|
56
75
|
task: async (ctx) => {
|
|
57
|
-
task.title = `Using docker version ${ctx.dockerVersion}
|
|
76
|
+
task.title = `Using docker version ${ctx.dockerVersion}`
|
|
58
77
|
|
|
59
78
|
const confirmLogOut = await task.prompt({
|
|
60
79
|
type: 'Select',
|
|
@@ -62,49 +81,56 @@ Do you want to install it automatically?
|
|
|
62
81
|
choices: [
|
|
63
82
|
{
|
|
64
83
|
name: 'log-out',
|
|
65
|
-
message: `${logger.style.command(
|
|
84
|
+
message: `${logger.style.command(
|
|
85
|
+
'[Recommended]'
|
|
86
|
+
)} Now I will log out and log back it (or restart my system) to re-evaluate group membership`
|
|
66
87
|
},
|
|
67
88
|
{
|
|
68
89
|
name: 'skip',
|
|
69
|
-
message:
|
|
90
|
+
message:
|
|
91
|
+
'Skip log out and proceed with installation'
|
|
70
92
|
}
|
|
71
93
|
]
|
|
72
|
-
})
|
|
94
|
+
})
|
|
73
95
|
|
|
74
96
|
if (confirmLogOut === 'skip') {
|
|
75
|
-
return
|
|
97
|
+
return
|
|
76
98
|
}
|
|
77
99
|
|
|
78
100
|
throw new KnownError(
|
|
79
101
|
`Docker is installed successfully!
|
|
80
102
|
Please log out and log back in (or restart your system) so your group membership is re-evaluated!
|
|
81
|
-
Learn more here: ${
|
|
82
|
-
|
|
103
|
+
Learn more here: ${logger.style.link(
|
|
104
|
+
'https://docs.docker.com/engine/install/linux-postinstall/'
|
|
105
|
+
)}`
|
|
106
|
+
)
|
|
83
107
|
}
|
|
84
108
|
},
|
|
85
109
|
checkDockerStatus(),
|
|
86
110
|
checkDockerDesktopContext()
|
|
87
|
-
])
|
|
111
|
+
])
|
|
88
112
|
}
|
|
89
113
|
|
|
90
114
|
if (automaticallyInstallDocker === 'skip') {
|
|
91
|
-
return
|
|
115
|
+
return
|
|
92
116
|
}
|
|
93
117
|
|
|
94
|
-
throw new KnownError('Docker is not installed!')
|
|
95
|
-
}
|
|
118
|
+
throw new KnownError('Docker is not installed!')
|
|
119
|
+
}
|
|
96
120
|
|
|
97
121
|
// maybe in the future docker will be possible to install on wsl from terminal...
|
|
98
122
|
const dockerInstallPromptWindows = () => {
|
|
99
123
|
throw new KnownError(
|
|
100
124
|
`You don't have Docker installed!
|
|
101
125
|
Follow this instructions to install Docker on Windows:
|
|
102
|
-
${
|
|
103
|
-
|
|
104
|
-
}
|
|
126
|
+
${logger.style.link(
|
|
127
|
+
'https://docs.create-magento-app.com/getting-started/prerequisites/windows-requirements#2-install-docker-desktop-for-windows'
|
|
128
|
+
)}`
|
|
129
|
+
)
|
|
130
|
+
}
|
|
105
131
|
|
|
106
132
|
/**
|
|
107
|
-
* @param {import('listr2').ListrTaskWrapper} task
|
|
133
|
+
* @param {import('listr2').ListrTaskWrapper<import('../../../../typings/context').ListrContext, any>} task
|
|
108
134
|
*/
|
|
109
135
|
const dockerInstallPromptMacOS = async (task) => {
|
|
110
136
|
const confirmationToInstallDocker = await task.prompt({
|
|
@@ -122,7 +148,7 @@ Would you like to install it automatically using brew cask or you prefer to inst
|
|
|
122
148
|
message: 'Install Docker manually'
|
|
123
149
|
}
|
|
124
150
|
]
|
|
125
|
-
})
|
|
151
|
+
})
|
|
126
152
|
|
|
127
153
|
if (confirmationToInstallDocker === 'automatic') {
|
|
128
154
|
return task.newListr([
|
|
@@ -131,53 +157,59 @@ Would you like to install it automatically using brew cask or you prefer to inst
|
|
|
131
157
|
checkDockerStatus(),
|
|
132
158
|
getDockerVersion(),
|
|
133
159
|
setVersionInContextTask(task)
|
|
134
|
-
])
|
|
160
|
+
])
|
|
135
161
|
}
|
|
136
162
|
|
|
137
|
-
const dockerInstallLink =
|
|
138
|
-
|
|
163
|
+
const dockerInstallLink =
|
|
164
|
+
'https://docs.create-magento-app.com/getting-started/prerequisites/installation-on-macos#3.-install-docker-for-mac'
|
|
165
|
+
await openBrowser(dockerInstallLink)
|
|
139
166
|
|
|
140
167
|
throw new KnownError(
|
|
141
168
|
`Follow this instructions to install Docker on Mac:
|
|
142
|
-
${
|
|
143
|
-
)
|
|
144
|
-
}
|
|
169
|
+
${logger.style.link(dockerInstallLink)}`
|
|
170
|
+
)
|
|
171
|
+
}
|
|
145
172
|
|
|
146
173
|
/**
|
|
147
|
-
* @
|
|
174
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
148
175
|
*/
|
|
149
176
|
const checkDocker = () => ({
|
|
150
177
|
title: 'Checking Docker',
|
|
151
178
|
task: async (ctx, task) => {
|
|
152
179
|
const { code } = await execAsyncSpawn('docker -v', {
|
|
153
180
|
withCode: true
|
|
154
|
-
})
|
|
181
|
+
})
|
|
155
182
|
|
|
156
183
|
if (code !== 0) {
|
|
157
184
|
if (os.platform() === 'linux') {
|
|
158
|
-
const isWsl = await getIsWsl()
|
|
185
|
+
const isWsl = await getIsWsl()
|
|
159
186
|
if (!isWsl) {
|
|
160
|
-
const { engine } =
|
|
187
|
+
const { engine } =
|
|
188
|
+
await getDockerEngineAndDesktopServiceStatus()
|
|
161
189
|
if (!engine.exists) {
|
|
162
|
-
const result = await dockerInstallPromptLinux(task)
|
|
190
|
+
const result = await dockerInstallPromptLinux(task)
|
|
163
191
|
if (result) {
|
|
164
|
-
return result
|
|
192
|
+
return result
|
|
165
193
|
}
|
|
166
194
|
}
|
|
167
195
|
} else if (isWsl) {
|
|
168
|
-
dockerInstallPromptWindows()
|
|
196
|
+
dockerInstallPromptWindows()
|
|
169
197
|
}
|
|
170
198
|
} else {
|
|
171
|
-
const result = await dockerInstallPromptMacOS(task)
|
|
199
|
+
const result = await dockerInstallPromptMacOS(task)
|
|
172
200
|
if (result) {
|
|
173
|
-
return result
|
|
201
|
+
return result
|
|
174
202
|
}
|
|
175
203
|
}
|
|
176
204
|
} else if (os.platform() === 'linux') {
|
|
177
|
-
const { engine, desktop } =
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
205
|
+
const { engine, desktop } =
|
|
206
|
+
await getDockerEngineAndDesktopServiceStatus()
|
|
207
|
+
if (
|
|
208
|
+
!engine.exists &&
|
|
209
|
+
desktop.exists &&
|
|
210
|
+
cmaGlobalConfig.get(
|
|
211
|
+
USE_DOCKER_ENGINE_WITH_DOCKER_DESKTOP_ANSWER
|
|
212
|
+
) !== false
|
|
181
213
|
) {
|
|
182
214
|
const confirmInstallingDockerEngine = await task.prompt({
|
|
183
215
|
type: 'Select',
|
|
@@ -187,7 +219,8 @@ Do you want to install it and use it's context together with Docker Desktop?
|
|
|
187
219
|
choices: [
|
|
188
220
|
{
|
|
189
221
|
name: 'yes',
|
|
190
|
-
message:
|
|
222
|
+
message:
|
|
223
|
+
'Sure, if it means I will have less issues with my setup!'
|
|
191
224
|
},
|
|
192
225
|
{
|
|
193
226
|
name: 'no',
|
|
@@ -195,20 +228,23 @@ Do you want to install it and use it's context together with Docker Desktop?
|
|
|
195
228
|
},
|
|
196
229
|
{
|
|
197
230
|
name: 'skip',
|
|
198
|
-
message:
|
|
231
|
+
message: "No. And don't ask me again."
|
|
199
232
|
}
|
|
200
233
|
]
|
|
201
|
-
})
|
|
234
|
+
})
|
|
202
235
|
|
|
203
236
|
if (confirmInstallingDockerEngine === 'skip') {
|
|
204
|
-
cmaGlobalConfig.set(
|
|
237
|
+
cmaGlobalConfig.set(
|
|
238
|
+
USE_DOCKER_ENGINE_WITH_DOCKER_DESKTOP_ANSWER,
|
|
239
|
+
false
|
|
240
|
+
)
|
|
205
241
|
} else if (confirmInstallingDockerEngine === 'yes') {
|
|
206
242
|
const result = await dockerInstallPromptLinux(task, {
|
|
207
243
|
skipPrompt: true
|
|
208
|
-
})
|
|
244
|
+
})
|
|
209
245
|
|
|
210
246
|
if (result) {
|
|
211
|
-
return result
|
|
247
|
+
return result
|
|
212
248
|
}
|
|
213
249
|
}
|
|
214
250
|
}
|
|
@@ -220,18 +256,16 @@ Do you want to install it and use it's context together with Docker Desktop?
|
|
|
220
256
|
getDockerVersion(),
|
|
221
257
|
checkDockerDesktopContext(),
|
|
222
258
|
setVersionInContextTask(task)
|
|
223
|
-
])
|
|
259
|
+
])
|
|
224
260
|
}
|
|
225
|
-
})
|
|
261
|
+
})
|
|
226
262
|
|
|
227
263
|
/**
|
|
228
|
-
* @
|
|
264
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
229
265
|
*/
|
|
230
266
|
module.exports = () => ({
|
|
231
|
-
task: (ctx, task) =>
|
|
232
|
-
checkDocker(),
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
})
|
|
237
|
-
});
|
|
267
|
+
task: (ctx, task) =>
|
|
268
|
+
task.newListr([checkDocker(), checkDockerPerformance()], {
|
|
269
|
+
concurrent: false
|
|
270
|
+
})
|
|
271
|
+
})
|
|
@@ -1,29 +1,36 @@
|
|
|
1
|
-
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
2
|
-
const { getBrewCommand } = require('../../../util/get-brew-bin-path')
|
|
1
|
+
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
2
|
+
const { getBrewCommand } = require('../../../util/get-brew-bin-path')
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
5
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
6
6
|
*/
|
|
7
7
|
const installDockerOnMac = () => ({
|
|
8
8
|
title: 'Installing Docker on Mac OS',
|
|
9
9
|
task: async (ctx, task) => {
|
|
10
|
-
const interval = !ctx.verbose
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const interval = !ctx.verbose
|
|
11
|
+
? setInterval(() => {
|
|
12
|
+
task.output = `Installing Docker on Mac... Yep, still in progress ${new Date().toUTCString()}`
|
|
13
|
+
}, 5000)
|
|
14
|
+
: null
|
|
13
15
|
|
|
14
|
-
await execAsyncSpawn(
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
await execAsyncSpawn(
|
|
17
|
+
`${await getBrewCommand({ native: true })} install --cask docker`,
|
|
18
|
+
{
|
|
19
|
+
callback: !ctx.verbose
|
|
20
|
+
? undefined
|
|
21
|
+
: (t) => {
|
|
22
|
+
task.output = t
|
|
23
|
+
}
|
|
17
24
|
}
|
|
18
|
-
|
|
25
|
+
)
|
|
19
26
|
|
|
20
|
-
if (!ctx.verbose) {
|
|
21
|
-
clearInterval(interval)
|
|
27
|
+
if (!ctx.verbose && interval) {
|
|
28
|
+
clearInterval(interval)
|
|
22
29
|
}
|
|
23
30
|
},
|
|
24
31
|
options: {
|
|
25
32
|
bottomBar: 10
|
|
26
33
|
}
|
|
27
|
-
})
|
|
34
|
+
})
|
|
28
35
|
|
|
29
|
-
module.exports = installDockerOnMac
|
|
36
|
+
module.exports = installDockerOnMac
|