UNPKG

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