diff --git a/buildutils/src/local-repository.ts b/buildutils/src/local-repository.ts index 14b9094756ef..946f9d9abfff 100644 --- a/buildutils/src/local-repository.ts +++ b/buildutils/src/local-repository.ts @@ -132,10 +132,30 @@ packages: const pass = 'bar'; const email = 'foo@bar.com'; console.log('Logging in'); - child_process.execSync(`npm login -e ${email} -r ${local_registry}`, { - input: `${user}\n${pass}\n${email}\n` + const loginPs = child_process.spawn( + 'npm', + `login -e ${email} -r ${local_registry}`.split(' ') + ); + + const loggedIn = new Promise(accept => { + loginPs.stdout.on('data', (chunk: string) => { + const data = Buffer.from(chunk, 'utf-8').toString(); + console.log('debug:', data); + if (data.indexOf('Logged in as') !== -1) { + console.log('debug: matched'); + loginPs.stdin.end(); + accept(); + } + }); }); + loginPs.stdin.write(user + '\n'); + loginPs.stdin.write(pass + '\n'); + loginPs.stdin.write(email + '\n'); + console.log('debug: written, awaiting'); + await loggedIn; + loginPs.kill(); + console.log('Running in', out_dir); ps.exit(0); }