From 0b56aa1b875328ecd796db7839424e2333176f7f Mon Sep 17 00:00:00 2001 From: Kacper Wiszczuk Date: Tue, 27 Aug 2019 14:22:18 +0200 Subject: [PATCH] fix: Infinite spinner white installing cocoapods --- packages/cli/package.json | 1 + packages/cli/src/tools/installPods.js | 20 ++++++++++++++------ yarn.lock | 5 +++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 788530e24..e891fdf6c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -55,6 +55,7 @@ "semver": "^5.0.3", "serve-static": "^1.13.1", "shell-quote": "1.6.1", + "sudo-prompt": "^9.0.0", "ws": "^1.1.0" }, "peerDependencies": { diff --git a/packages/cli/src/tools/installPods.js b/packages/cli/src/tools/installPods.js index 6327ba29c..5814bbabf 100644 --- a/packages/cli/src/tools/installPods.js +++ b/packages/cli/src/tools/installPods.js @@ -6,6 +6,7 @@ import Ora from 'ora'; import inquirer from 'inquirer'; import {logger} from '@react-native-community/cli-tools'; import {NoopLoader} from './loader'; +import sudo from 'sudo-prompt'; async function updatePods(loader: typeof Ora) { try { @@ -28,6 +29,18 @@ async function updatePods(loader: typeof Ora) { } } +function runSudo(command: string): Promise { + return new Promise((resolve, reject) => { + sudo.exec(command, error => { + if (error) { + reject(error); + } + + resolve(); + }); + }); +} + async function installPods({ projectName, loader, @@ -82,12 +95,7 @@ async function installPods({ } catch (_error) { try { // If that doesn't work then try with sudo - await execa('sudo', [ - 'gem', - 'install', - 'cocoapods', - '--no-document', - ]); + await runSudo('gem install cocoapods --no-document'); } catch (error) { loader.fail(); logger.log(error.stderr); diff --git a/yarn.lock b/yarn.lock index 0d2b2786c..250c288c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8585,6 +8585,11 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" +sudo-prompt@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.0.0.tgz#eebedeee9fcd6f661324e6bb46335e3288e8dc8a" + integrity sha512-kUn5fiOk0nhY2oKD9onIkcNCE4Zt85WTsvOfSmqCplmlEvXCcPOmp1npH5YWuf8Bmyy9wLWkIxx+D+8cThBORQ== + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"