forked from serverless/serverless
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopenBrowser.js
More file actions
31 lines (27 loc) · 1 KB
/
openBrowser.js
File metadata and controls
31 lines (27 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'use strict';
/* eslint-disable no-console */
const opn = require('opn');
const chalk = require('chalk');
const isDockerContainer = require('is-docker');
function displayManualOpenMessage(url, err) {
// https://github.com/sindresorhus/log-symbols
console.log('---------------------------');
const errMsg = err ? `\nError: ${err.message}` : '';
const msg = `Unable to open browser automatically${errMsg}`;
console.log(`🙈 ${chalk.red(msg)}`);
console.log(chalk.green('Please open your browser & open the URL below to login:'));
console.log(chalk.yellow(url));
console.log('---------------------------');
return false;
}
module.exports = function openBrowser(url) {
let browser = process.env.BROWSER;
if (browser === 'none' || isDockerContainer()) {
return displayManualOpenMessage(url);
}
if (process.platform === 'darwin' && browser === 'open') {
browser = undefined;
}
const options = { app: browser };
return opn(url, options).catch(err => displayManualOpenMessage(url, err));
};