Initial commit
[yaffs-website] / node_modules / postcss / node_modules / supports-color / index.js
1 'use strict';
2 var hasFlag = require('has-flag');
3
4 var support = function (level) {
5         if (level === 0) {
6                 return false;
7         }
8
9         return {
10                 level: level,
11                 hasBasic: true,
12                 has256: level >= 2,
13                 has16m: level >= 3
14         };
15 };
16
17 var supportLevel = (function () {
18         if (hasFlag('no-color') ||
19                 hasFlag('no-colors') ||
20                 hasFlag('color=false')) {
21                 return 0;
22         }
23
24         if (hasFlag('color=16m') ||
25                 hasFlag('color=full') ||
26                 hasFlag('color=truecolor')) {
27                 return 3;
28         }
29
30         if (hasFlag('color=256')) {
31                 return 2;
32         }
33
34         if (hasFlag('color') ||
35                 hasFlag('colors') ||
36                 hasFlag('color=true') ||
37                 hasFlag('color=always')) {
38                 return 1;
39         }
40
41         if (process.stdout && !process.stdout.isTTY) {
42                 return 0;
43         }
44
45         if (process.platform === 'win32') {
46                 return 1;
47         }
48
49         if ('CI' in process.env) {
50                 if ('TRAVIS' in process.env || process.env.CI === 'Travis') {
51                         return 1;
52                 }
53
54                 return 0;
55         }
56
57         if ('TEAMCITY_VERSION' in process.env) {
58                 return process.env.TEAMCITY_VERSION.match(/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/) === null ? 0 : 1;
59         }
60
61         if (/^(screen|xterm)-256(?:color)?/.test(process.env.TERM)) {
62                 return 2;
63         }
64
65         if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
66                 return 1;
67         }
68
69         if ('COLORTERM' in process.env) {
70                 return 1;
71         }
72
73         if (process.env.TERM === 'dumb') {
74                 return 0;
75         }
76
77         return 0;
78 })();
79
80 if (supportLevel === 0 && 'FORCE_COLOR' in process.env) {
81         supportLevel = 1;
82 }
83
84 module.exports = process && support(supportLevel);