@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,73 +1,84 @@
|
|
|
1
|
-
const osPlatform = require('../../../util/os-platform')
|
|
2
|
-
const { execCommandTask } = require('../../../util/exec-async-command')
|
|
3
|
-
const installDependenciesTask = require('../../../util/install-dependencies-task')
|
|
4
|
-
const executeSudoCommand = require('../../../util/execute-sudo-command')
|
|
5
|
-
const KnownError = require('../../../errors/known-error')
|
|
1
|
+
const osPlatform = require('../../../util/os-platform')
|
|
2
|
+
const { execCommandTask } = require('../../../util/exec-async-command')
|
|
3
|
+
const installDependenciesTask = require('../../../util/install-dependencies-task')
|
|
4
|
+
const executeSudoCommand = require('../../../util/execute-sudo-command')
|
|
5
|
+
const KnownError = require('../../../errors/known-error')
|
|
6
6
|
|
|
7
|
-
const downloadDockerInstallScriptCommand = () =>
|
|
8
|
-
|
|
9
|
-
const
|
|
7
|
+
const downloadDockerInstallScriptCommand = () =>
|
|
8
|
+
execCommandTask('curl -fsSL https://get.docker.com -o get-docker.sh')
|
|
9
|
+
const runDockerInstallScriptCommand = () =>
|
|
10
|
+
executeSudoCommand('sudo sh get-docker.sh')
|
|
11
|
+
const enableAndStartDockerCommand = () =>
|
|
12
|
+
executeSudoCommand('sudo systemctl enable docker --now')
|
|
10
13
|
|
|
11
14
|
const postInstallSteps = [
|
|
12
15
|
executeSudoCommand('[ $(getent group docker) ] && sudo groupadd docker', {
|
|
13
16
|
withCode: true
|
|
14
17
|
}),
|
|
15
18
|
executeSudoCommand(`sudo usermod -aG docker ${process.env.USER}`)
|
|
16
|
-
]
|
|
19
|
+
]
|
|
17
20
|
/**
|
|
18
|
-
* @
|
|
21
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
19
22
|
*/
|
|
20
23
|
const installDockerEngine = () => ({
|
|
21
24
|
title: 'Installing Docker Engine',
|
|
22
25
|
task: async (ctx, task) => {
|
|
23
|
-
const distro = await osPlatform()
|
|
26
|
+
const distro = await osPlatform()
|
|
24
27
|
switch (distro) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
28
|
+
case 'Arch Linux': {
|
|
29
|
+
return task.newListr([
|
|
30
|
+
installDependenciesTask({
|
|
31
|
+
platform: 'Arch Linux',
|
|
32
|
+
dependenciesToInstall: ['docker']
|
|
33
|
+
}),
|
|
34
|
+
enableAndStartDockerCommand(),
|
|
35
|
+
...postInstallSteps
|
|
36
|
+
])
|
|
37
|
+
}
|
|
38
|
+
case 'Fedora': {
|
|
39
|
+
return task.newListr([
|
|
40
|
+
executeSudoCommand('sudo dnf -y install dnf-plugins-core'),
|
|
41
|
+
executeSudoCommand(
|
|
42
|
+
'sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo'
|
|
43
|
+
),
|
|
44
|
+
executeSudoCommand(
|
|
45
|
+
'sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin'
|
|
46
|
+
),
|
|
47
|
+
enableAndStartDockerCommand(),
|
|
48
|
+
...postInstallSteps
|
|
49
|
+
])
|
|
50
|
+
}
|
|
51
|
+
case 'CentOS': {
|
|
52
|
+
return task.newListr([
|
|
53
|
+
executeSudoCommand('sudo yum install -y yum-utils'),
|
|
54
|
+
executeSudoCommand(
|
|
55
|
+
'sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
|
|
56
|
+
),
|
|
57
|
+
executeSudoCommand(
|
|
58
|
+
'sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin'
|
|
59
|
+
),
|
|
60
|
+
...postInstallSteps
|
|
61
|
+
])
|
|
62
|
+
}
|
|
63
|
+
case 'Ubuntu': {
|
|
64
|
+
return task.newListr([
|
|
65
|
+
downloadDockerInstallScriptCommand(),
|
|
66
|
+
runDockerInstallScriptCommand(),
|
|
67
|
+
enableAndStartDockerCommand(),
|
|
68
|
+
...postInstallSteps
|
|
69
|
+
])
|
|
70
|
+
}
|
|
71
|
+
default: {
|
|
72
|
+
throw new KnownError(`Docker is not installed!
|
|
73
|
+
Your distro ${distro} is not supported by automatic installation.`)
|
|
74
|
+
}
|
|
64
75
|
}
|
|
65
76
|
},
|
|
66
77
|
options: {
|
|
67
78
|
bottomBar: 10
|
|
68
79
|
}
|
|
69
|
-
})
|
|
80
|
+
})
|
|
70
81
|
|
|
71
82
|
module.exports = {
|
|
72
83
|
installDockerEngine
|
|
73
|
-
}
|
|
84
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const os = require('os')
|
|
2
|
-
const path = require('path')
|
|
3
|
-
const semver = require('semver')
|
|
4
|
-
const getJsonfileData = require('../../../util/get-jsonfile-data')
|
|
5
|
-
const pathExists = require('../../../util/path-exists')
|
|
1
|
+
const os = require('os')
|
|
2
|
+
const path = require('path')
|
|
3
|
+
const semver = require('semver')
|
|
4
|
+
const getJsonfileData = require('../../../util/get-jsonfile-data')
|
|
5
|
+
const pathExists = require('../../../util/path-exists')
|
|
6
6
|
|
|
7
7
|
const dockerSettingsJsonPath = path.join(
|
|
8
8
|
os.homedir(),
|
|
@@ -10,45 +10,61 @@ const dockerSettingsJsonPath = path.join(
|
|
|
10
10
|
'Group Containers',
|
|
11
11
|
'group.com.docker',
|
|
12
12
|
'settings.json'
|
|
13
|
-
)
|
|
13
|
+
)
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* @
|
|
16
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
17
17
|
*/
|
|
18
18
|
const checkDockerPerformance = () => ({
|
|
19
19
|
title: 'Checking Docker Performance',
|
|
20
|
-
|
|
21
|
-
skip: async (ctx) =>
|
|
20
|
+
|
|
21
|
+
skip: async (ctx) =>
|
|
22
|
+
ctx.platform !== 'darwin' ||
|
|
23
|
+
(ctx.platform === 'darwin' &&
|
|
24
|
+
!(await pathExists(dockerSettingsJsonPath))),
|
|
22
25
|
task: async (ctx, task) => {
|
|
23
|
-
const dockerSettings = await getJsonfileData(dockerSettingsJsonPath)
|
|
26
|
+
const dockerSettings = await getJsonfileData(dockerSettingsJsonPath)
|
|
24
27
|
|
|
25
28
|
if (!dockerSettings) {
|
|
26
|
-
task.skip()
|
|
27
|
-
return
|
|
29
|
+
task.skip()
|
|
30
|
+
return
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
const dockerForMacVersionMatch =
|
|
33
|
+
const dockerForMacVersionMatch =
|
|
34
|
+
ctx.dockerServerData &&
|
|
35
|
+
ctx.dockerServerData.Platform.Name.match(/(\d+\.\d+\.\d+)/i)
|
|
31
36
|
|
|
32
|
-
const dockerForMacVersion =
|
|
37
|
+
const dockerForMacVersion =
|
|
38
|
+
dockerForMacVersionMatch && dockerForMacVersionMatch[1]
|
|
33
39
|
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
if (
|
|
41
|
+
dockerForMacVersion &&
|
|
42
|
+
ctx.platformVersion &&
|
|
43
|
+
ctx.arch === 'arm64' &&
|
|
44
|
+
semver.gt('12.2.0', ctx.platformVersion) &&
|
|
45
|
+
semver.gt(dockerForMacVersion, '4.6.0')
|
|
46
|
+
) {
|
|
37
47
|
if (!dockerSettings.useVirtualizationFrameworkVirtioFS) {
|
|
38
|
-
task.title =
|
|
48
|
+
task.title =
|
|
49
|
+
'Performance is not optimal. VirtioFS is not enabled.'
|
|
39
50
|
}
|
|
40
51
|
}
|
|
41
52
|
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
53
|
+
if (
|
|
54
|
+
dockerForMacVersion &&
|
|
55
|
+
ctx.platformVersion &&
|
|
56
|
+
ctx.arch === 'x64' &&
|
|
57
|
+
semver.gt('12.3.0', ctx.platformVersion) &&
|
|
58
|
+
semver.gt(dockerForMacVersion, '4.6.0')
|
|
59
|
+
) {
|
|
45
60
|
if (!dockerSettings.useVirtualizationFrameworkVirtioFS) {
|
|
46
|
-
task.title =
|
|
61
|
+
task.title =
|
|
62
|
+
'Performance is not optimal. VirtioFS is not enabled.'
|
|
47
63
|
}
|
|
48
64
|
}
|
|
49
65
|
}
|
|
50
|
-
})
|
|
66
|
+
})
|
|
51
67
|
|
|
52
68
|
module.exports = {
|
|
53
69
|
checkDockerPerformance
|
|
54
|
-
}
|
|
70
|
+
}
|
|
@@ -1,49 +1,59 @@
|
|
|
1
|
-
const os = require('os')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
-
const pathExists = require('../../../util/path-exists')
|
|
5
|
-
const executeSudoCommand = require('../../../util/execute-sudo-command')
|
|
1
|
+
const os = require('os')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
+
const pathExists = require('../../../util/path-exists')
|
|
5
|
+
const executeSudoCommand = require('../../../util/execute-sudo-command')
|
|
6
6
|
|
|
7
|
-
const dockerSocketPath = '/var/run/docker.sock'
|
|
7
|
+
const dockerSocketPath = '/var/run/docker.sock'
|
|
8
8
|
|
|
9
|
-
const fixCommand = `sudo chmod 666 ${
|
|
9
|
+
const fixCommand = `sudo chmod 666 ${dockerSocketPath}`
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* @
|
|
12
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
13
13
|
*/
|
|
14
14
|
const checkDockerSocketPermissions = () => ({
|
|
15
15
|
title: 'Checking Docker permissions',
|
|
16
16
|
// skip check if socket does not exist
|
|
17
|
-
skip: async () => !await pathExists(dockerSocketPath),
|
|
17
|
+
skip: async () => !(await pathExists(dockerSocketPath)),
|
|
18
18
|
task: async (ctx, task) => {
|
|
19
19
|
try {
|
|
20
|
-
await fs.promises.access(dockerSocketPath, fs.constants.R_OK)
|
|
20
|
+
await fs.promises.access(dockerSocketPath, fs.constants.R_OK)
|
|
21
21
|
} catch (e) {
|
|
22
22
|
// check for permission
|
|
23
23
|
if (Math.abs(e.errno) === Math.abs(os.constants.errno.EACCES)) {
|
|
24
24
|
const confirmPrompt = await task.prompt({
|
|
25
25
|
type: 'Confirm',
|
|
26
|
-
message: `We detected that your Docker socket, located in ${
|
|
26
|
+
message: `We detected that your Docker socket, located in ${logger.style.file(
|
|
27
|
+
dockerSocketPath
|
|
28
|
+
)}, have permissions set, that prevents user (${logger.style.misc(
|
|
29
|
+
os.userInfo().username
|
|
30
|
+
)}) from accessing it.
|
|
27
31
|
|
|
28
|
-
We can fix it by running the following command: ${
|
|
32
|
+
We can fix it by running the following command: ${logger.style.command(
|
|
33
|
+
fixCommand
|
|
34
|
+
)}
|
|
29
35
|
|
|
30
36
|
Would you like to fix this permission issue?
|
|
31
37
|
|
|
32
38
|
Otherwise installation will likely fail.`
|
|
33
|
-
})
|
|
39
|
+
})
|
|
34
40
|
|
|
35
41
|
if (confirmPrompt) {
|
|
36
|
-
return task.newListr(executeSudoCommand(fixCommand))
|
|
42
|
+
return task.newListr(executeSudoCommand(fixCommand))
|
|
37
43
|
}
|
|
38
|
-
task.skip(
|
|
44
|
+
task.skip(
|
|
45
|
+
`Permission issue detected in ${logger.style.file(
|
|
46
|
+
dockerSocketPath
|
|
47
|
+
)} but user decided not to fix it.`
|
|
48
|
+
)
|
|
39
49
|
}
|
|
40
50
|
}
|
|
41
51
|
},
|
|
42
52
|
options: {
|
|
43
53
|
bottomBar: 10
|
|
44
54
|
}
|
|
45
|
-
})
|
|
55
|
+
})
|
|
46
56
|
|
|
47
57
|
module.exports = {
|
|
48
58
|
checkDockerSocketPermissions
|
|
49
|
-
}
|
|
59
|
+
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
const KnownError = require('../../../errors/known-error')
|
|
2
|
-
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
3
|
-
const pathExists = require('../../../util/path-exists')
|
|
4
|
-
const sleep = require('../../../util/sleep')
|
|
5
|
-
const { systemctlControl } = require('../../../util/systemctl')
|
|
1
|
+
const KnownError = require('../../../errors/known-error')
|
|
2
|
+
const { execAsyncSpawn } = require('../../../util/exec-async-command')
|
|
3
|
+
const pathExists = require('../../../util/path-exists')
|
|
4
|
+
const sleep = require('../../../util/sleep')
|
|
5
|
+
const { systemctlControl } = require('../../../util/systemctl')
|
|
6
6
|
|
|
7
|
-
const pathToDockerApplication = '/Applications/Docker.app'
|
|
7
|
+
const pathToDockerApplication = '/Applications/Docker.app'
|
|
8
8
|
|
|
9
|
-
const getDockerVersion = () =>
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const getDockerVersion = () =>
|
|
10
|
+
execAsyncSpawn('docker version --format {{.Server.Version}}', {
|
|
11
|
+
withCode: true
|
|
12
|
+
})
|
|
12
13
|
|
|
13
14
|
const getDockerEngineAndDesktopServiceStatus = async () => {
|
|
14
|
-
const dockerEngineService = systemctlControl('docker')
|
|
15
|
-
const dockerDesktopService = systemctlControl('docker-desktop', {
|
|
15
|
+
const dockerEngineService = systemctlControl('docker')
|
|
16
|
+
const dockerDesktopService = systemctlControl('docker-desktop', {
|
|
17
|
+
user: true
|
|
18
|
+
})
|
|
16
19
|
const [
|
|
17
20
|
dockerEngineServiceExists,
|
|
18
21
|
dockerDesktopServiceExists,
|
|
@@ -27,7 +30,7 @@ const getDockerEngineAndDesktopServiceStatus = async () => {
|
|
|
27
30
|
dockerDesktopService.isRunning(),
|
|
28
31
|
dockerEngineService.isEnabled(),
|
|
29
32
|
dockerDesktopService.isEnabled()
|
|
30
|
-
])
|
|
33
|
+
])
|
|
31
34
|
|
|
32
35
|
return {
|
|
33
36
|
engine: {
|
|
@@ -42,84 +45,94 @@ const getDockerEngineAndDesktopServiceStatus = async () => {
|
|
|
42
45
|
isRunning: dockerDesktopServiceIsRunning,
|
|
43
46
|
isEnabled: dockerDesktopServiceIsEnabled
|
|
44
47
|
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
47
50
|
|
|
48
51
|
/**
|
|
49
|
-
* @
|
|
52
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
50
53
|
*/
|
|
51
54
|
const checkDockerStatusMacOS = () => ({
|
|
52
55
|
title: 'Checking Docker status on MacOS',
|
|
53
56
|
task: async (ctx, task) => {
|
|
54
|
-
const { result, code } = await getDockerVersion()
|
|
57
|
+
const { result, code } = await getDockerVersion()
|
|
55
58
|
|
|
56
59
|
if (code !== 0) {
|
|
57
|
-
if (
|
|
60
|
+
if (
|
|
61
|
+
result.includes('Is the docker daemon running?') ||
|
|
62
|
+
result.includes('docker: command not found')
|
|
63
|
+
) {
|
|
58
64
|
const dockerOpenAppConfirmation = await task.prompt({
|
|
59
65
|
type: 'Confirm',
|
|
60
|
-
message:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
message:
|
|
67
|
+
'Looks like Docker is not running, would you like us to open a Docker for Mac application and wait for it to start up?'
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
if (
|
|
71
|
+
dockerOpenAppConfirmation &&
|
|
72
|
+
(await pathExists(pathToDockerApplication))
|
|
73
|
+
) {
|
|
74
|
+
await execAsyncSpawn(`open ${pathToDockerApplication}`)
|
|
75
|
+
let ready = false
|
|
76
|
+
let attempts = 0
|
|
67
77
|
while (!ready) {
|
|
68
78
|
if (attempts > 24 && !ready) {
|
|
69
|
-
throw new KnownError(
|
|
79
|
+
throw new KnownError(
|
|
80
|
+
"Docker haven't started in 2 mins, exiting..."
|
|
81
|
+
)
|
|
70
82
|
}
|
|
71
83
|
try {
|
|
72
|
-
const { code: startupCode } =
|
|
84
|
+
const { code: startupCode } =
|
|
85
|
+
await getDockerVersion()
|
|
73
86
|
if (startupCode !== 0) {
|
|
74
|
-
task.output = `Waiting for Docker to startup for ${
|
|
75
|
-
|
|
76
|
-
|
|
87
|
+
task.output = `Waiting for Docker to startup for ${
|
|
88
|
+
attempts * 5
|
|
89
|
+
} seconds...`
|
|
90
|
+
attempts++
|
|
91
|
+
await sleep(5000)
|
|
77
92
|
} else {
|
|
78
|
-
ready = true
|
|
93
|
+
ready = true
|
|
79
94
|
}
|
|
80
95
|
} catch (e) {
|
|
81
|
-
|
|
96
|
+
//
|
|
82
97
|
}
|
|
83
98
|
}
|
|
84
99
|
|
|
85
|
-
return
|
|
100
|
+
return
|
|
86
101
|
}
|
|
87
102
|
|
|
88
|
-
task.skip('User skipped running Docker')
|
|
103
|
+
task.skip('User skipped running Docker')
|
|
89
104
|
}
|
|
90
105
|
}
|
|
91
106
|
},
|
|
92
107
|
options: {
|
|
93
108
|
bottomBar: 10
|
|
94
109
|
}
|
|
95
|
-
})
|
|
110
|
+
})
|
|
96
111
|
|
|
97
112
|
/**
|
|
98
|
-
* @
|
|
113
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
99
114
|
*/
|
|
100
115
|
const checkDockerStatusWSL = () => ({
|
|
101
116
|
title: 'Checking Docker status on Windows WSL',
|
|
102
117
|
task: async () => {
|
|
103
|
-
const { result, code } = await getDockerVersion()
|
|
118
|
+
const { result, code } = await getDockerVersion()
|
|
104
119
|
|
|
105
120
|
if (code !== 0 && result.includes('Is the docker daemon running?')) {
|
|
106
121
|
throw new KnownError(`Docker is not running!
|
|
107
122
|
|
|
108
|
-
Please open Docker Desktop application for Windows and make sure that Docker is running. Then you can try again!`)
|
|
123
|
+
Please open Docker Desktop application for Windows and make sure that Docker is running. Then you can try again!`)
|
|
109
124
|
}
|
|
110
125
|
}
|
|
111
|
-
})
|
|
126
|
+
})
|
|
112
127
|
|
|
113
128
|
/**
|
|
114
|
-
* @
|
|
129
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
115
130
|
*/
|
|
116
131
|
const checkDockerStatusLinux = () => ({
|
|
117
132
|
title: 'Checking Docker status on Linux',
|
|
118
133
|
task: async (ctx, task) => {
|
|
119
|
-
const {
|
|
120
|
-
|
|
121
|
-
desktop
|
|
122
|
-
} = await getDockerEngineAndDesktopServiceStatus();
|
|
134
|
+
const { engine, desktop } =
|
|
135
|
+
await getDockerEngineAndDesktopServiceStatus()
|
|
123
136
|
|
|
124
137
|
if (engine.exists) {
|
|
125
138
|
if (!engine.isEnabled && !engine.isRunning) {
|
|
@@ -128,28 +141,28 @@ const checkDockerStatusLinux = () => ({
|
|
|
128
141
|
message: `Looks like Docker Engine is not enabled and not running, would you like to enable and run it?
|
|
129
142
|
|
|
130
143
|
This action requires root privileges.`
|
|
131
|
-
})
|
|
144
|
+
})
|
|
132
145
|
|
|
133
146
|
if (dockerStartConfirmation) {
|
|
134
|
-
await engine.service.enableAndStart()
|
|
147
|
+
await engine.service.enableAndStart()
|
|
135
148
|
|
|
136
|
-
return
|
|
149
|
+
return
|
|
137
150
|
}
|
|
138
|
-
task.skip('User skipped running Docker')
|
|
151
|
+
task.skip('User skipped running Docker')
|
|
139
152
|
} else if (!engine.isRunning) {
|
|
140
153
|
const dockerStartConfirmation = await task.prompt({
|
|
141
154
|
type: 'Confirm',
|
|
142
155
|
message: `Looks like Docker Engine is not running, would you like to run it?
|
|
143
156
|
|
|
144
157
|
This action requires root privileges.`
|
|
145
|
-
})
|
|
158
|
+
})
|
|
146
159
|
|
|
147
160
|
if (dockerStartConfirmation) {
|
|
148
|
-
await engine.service.start()
|
|
161
|
+
await engine.service.start()
|
|
149
162
|
|
|
150
|
-
return
|
|
163
|
+
return
|
|
151
164
|
}
|
|
152
|
-
task.skip('User skipped running Docker Engine')
|
|
165
|
+
task.skip('User skipped running Docker Engine')
|
|
153
166
|
}
|
|
154
167
|
} else if (desktop.exists) {
|
|
155
168
|
if (!desktop.isEnabled && !desktop.isRunning) {
|
|
@@ -158,51 +171,51 @@ const checkDockerStatusLinux = () => ({
|
|
|
158
171
|
message: `Looks like Docker Desktop is not enabled and not running, would you like to enable and run it?
|
|
159
172
|
|
|
160
173
|
This action requires root privileges.`
|
|
161
|
-
})
|
|
174
|
+
})
|
|
162
175
|
|
|
163
176
|
if (dockerStartConfirmation) {
|
|
164
|
-
await desktop.service.enableAndStart()
|
|
177
|
+
await desktop.service.enableAndStart()
|
|
165
178
|
|
|
166
|
-
return
|
|
179
|
+
return
|
|
167
180
|
}
|
|
168
|
-
task.skip('User skipped running Docker')
|
|
181
|
+
task.skip('User skipped running Docker')
|
|
169
182
|
} else if (!desktop.isRunning) {
|
|
170
183
|
const dockerStartConfirmation = await task.prompt({
|
|
171
184
|
type: 'Confirm',
|
|
172
185
|
message: `Looks like Docker Desktop is not running, would you like to run it?
|
|
173
186
|
|
|
174
187
|
This action requires root privileges.`
|
|
175
|
-
})
|
|
188
|
+
})
|
|
176
189
|
|
|
177
190
|
if (dockerStartConfirmation) {
|
|
178
|
-
await desktop.service.start()
|
|
191
|
+
await desktop.service.start()
|
|
179
192
|
|
|
180
|
-
return
|
|
193
|
+
return
|
|
181
194
|
}
|
|
182
|
-
task.skip('User skipped running Docker Desktop')
|
|
195
|
+
task.skip('User skipped running Docker Desktop')
|
|
183
196
|
}
|
|
184
197
|
}
|
|
185
198
|
}
|
|
186
|
-
})
|
|
199
|
+
})
|
|
187
200
|
|
|
188
201
|
/**
|
|
189
|
-
* @
|
|
202
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
190
203
|
*/
|
|
191
204
|
const checkDockerStatus = () => ({
|
|
192
205
|
title: 'Checking Docker status',
|
|
193
206
|
task: async (ctx, task) => {
|
|
194
207
|
if (ctx.platform === 'darwin') {
|
|
195
|
-
return task.newListr(checkDockerStatusMacOS())
|
|
208
|
+
return task.newListr(checkDockerStatusMacOS())
|
|
196
209
|
}
|
|
197
210
|
if (!ctx.isWsl) {
|
|
198
|
-
return task.newListr(checkDockerStatusLinux())
|
|
211
|
+
return task.newListr(checkDockerStatusLinux())
|
|
199
212
|
}
|
|
200
213
|
|
|
201
|
-
return task.newListr(checkDockerStatusWSL())
|
|
214
|
+
return task.newListr(checkDockerStatusWSL())
|
|
202
215
|
}
|
|
203
|
-
})
|
|
216
|
+
})
|
|
204
217
|
|
|
205
218
|
module.exports = {
|
|
206
219
|
checkDockerStatus,
|
|
207
220
|
getDockerEngineAndDesktopServiceStatus
|
|
208
|
-
}
|
|
221
|
+
}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
const UnknownError = require('../../../errors/unknown-error')
|
|
2
|
-
const { version } = require('../../docker/api')
|
|
1
|
+
const UnknownError = require('../../../errors/unknown-error')
|
|
2
|
+
const { version } = require('../../docker/api')
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
5
|
+
* @returns {import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
|
|
6
6
|
*/
|
|
7
7
|
const getDockerVersion = () => ({
|
|
8
8
|
task: async (ctx) => {
|
|
9
9
|
const dockerVersion = await version({
|
|
10
10
|
formatToJSON: true
|
|
11
|
-
})
|
|
11
|
+
})
|
|
12
12
|
|
|
13
13
|
if (dockerVersion) {
|
|
14
|
-
ctx.dockerServerData = dockerVersion.Server
|
|
15
|
-
ctx.dockerClientData = dockerVersion.Client
|
|
16
|
-
ctx.dockerVersion = dockerVersion.Server.Version
|
|
17
|
-
ctx.isDockerDesktop =
|
|
14
|
+
ctx.dockerServerData = dockerVersion.Server
|
|
15
|
+
ctx.dockerClientData = dockerVersion.Client
|
|
16
|
+
ctx.dockerVersion = dockerVersion.Server.Version
|
|
17
|
+
ctx.isDockerDesktop =
|
|
18
|
+
dockerVersion.Server.Platform.Name.includes('Desktop')
|
|
18
19
|
} else {
|
|
19
|
-
throw new UnknownError(
|
|
20
|
+
throw new UnknownError(
|
|
21
|
+
`Got unexpected result during Docker version retrieval!\n\n${dockerVersion}`
|
|
22
|
+
)
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
|
-
})
|
|
25
|
+
})
|
|
23
26
|
|
|
24
|
-
module.exports = getDockerVersion
|
|
27
|
+
module.exports = getDockerVersion
|