UNPKG

1.46 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const Debug = require("debug");
4const debug = Debug('ionic:utils-terminal');
5/**
6 * These environment variables work for: Travis CI, CircleCI, Gitlab CI,
7 * AppVeyor, CodeShip, Jenkins, TeamCity, Bitbucket Pipelines, AWS CodeBuild
8 */
9exports.CI_ENVIRONMENT_VARIABLES = ['CI', 'BUILD_ID', 'BUILD_NUMBER', 'BITBUCKET_COMMIT', 'CODEBUILD_BUILD_ARN'];
10exports.CI_ENVIRONMENT_VARIABLES_DETECTED = exports.CI_ENVIRONMENT_VARIABLES.filter(v => !!process.env[v]);
11function getShell() {
12 if (process.env.SHELL) {
13 return process.env.SHELL;
14 }
15 if (process.platform === 'darwin') {
16 return '/bin/bash';
17 }
18 if (process.platform === 'win32') {
19 return process.env.COMSPEC ? process.env.COMSPEC : 'cmd.exe';
20 }
21 return '/bin/sh';
22}
23if (exports.CI_ENVIRONMENT_VARIABLES_DETECTED.length > 0) {
24 debug(`Environment variables for CI detected: ${exports.CI_ENVIRONMENT_VARIABLES_DETECTED.join(', ')}`);
25}
26exports.TERMINAL_INFO = Object.freeze({
27 ci: exports.CI_ENVIRONMENT_VARIABLES_DETECTED.length > 0,
28 shell: getShell(),
29 tty: Boolean(process.stdin.isTTY && process.stdout.isTTY && process.stderr.isTTY),
30 windows: process.platform === 'win32' || (process.env.OSTYPE && /^(msys|cygwin)$/.test(process.env.OSTYPE) ||
31 process.env.MSYSTEM && /^MINGW(32|64)$/.test(process.env.MSYSTEM) ||
32 process.env.TERM === 'cygwin'),
33});