package Ġio . github . kotlin mp . kot log . st yling čĊč Ċ /** čĊ Ġ* ĠThese Ġcode Ġcame Ġfrom Ġhttps :// github . com / chalk / supports - color čĊ Ġ*/ č Ċ actual Ġobject ĠColor Supports Ġ{ čĊĠĠĠ Ġactual Ġval Ġsupport Colors : ĠBoolean čĊĠĠĠ Ġactual Ġval Ġsupport Ansi 1 6 Colors : ĠBoolean čĊĠĠĠ Ġactual Ġval Ġsupport Ansi 2 5 6 Colors : ĠBoolean čĊĠĠĠ Ġactual Ġval Ġsupport Hex Rgb Colors : ĠBoolean čĊčĊĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠ Ġval ĠTE AM C ITY Ġ= ĠSystem . getenv (" TEAM C ITY _ VERSION ") čĊĠĠĠĠĠĠĠ Ġval ĠTER M _ PROGRAM Ġ= ĠSystem . getenv (" TERM _ PROGRAM ") čĊĠĠĠĠĠĠĠ Ġval ĠTER M Ġ= ĠSystem . getenv (" TERM ") čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( System . getProperty (" java . class . path "). contains (" idea _ rt . jar ")) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIntelliJ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( System . console () Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(" win " Ġin ĠSystem . getProperty (" os . name "). toLowerCase ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠWindows Ġ 1 0 Ġbuild Ġ 1 0 5 8 6 Ġis Ġthe Ġfirst ĠWindows Ġrelease Ġthat Ġsupports Ġ 2 5 6 Ġcolors . čĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠWindows Ġ 1 0 Ġbuild Ġ 1 4 9 3 1 Ġis Ġthe Ġfirst Ġrelease Ġthat Ġsupports Ġ 1 6 m / True Color . čĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġos Release Ġ= ĠSystem . getProperty (" os . version "). split ('.') čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( os Release [ 0 ]) Ġ>= Ġ 1 0 Ġ&& ĠInteger . parseInt ( os Release [ 2 ]) Ġ>= Ġ 1 0 5 8 6 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( error : ĠNumber FormatException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( error : ĠIndex OutOfBoundsException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= ĠInteger . parseInt ( os Release [ 2 ]) Ġ>= Ġ 1 4 9 3 1 čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( System . getenv (" CI ") Ġ!== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" TR AV IS ", Ġ" CIR CLE CI ", Ġ" APP VE Y OR ", Ġ" GIT LAB _ CI "). any Ġ{ ĠSystem . getenv ( it ) Ġ!== Ġnull Ġ} Ġ|| čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getenv (" CI _ NAME ") Ġ=== Ġ" code ship " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( TEAM C ITY Ġ!== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Regex ("^ ( 9 \\ .( 0 *[ 1 - 9 ]\\ d *) \\ .| \\ d { 2 , }\\ .) "). matches ( TEAM C ITY )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( System . getenv (" COL ORT ER M ") Ġ=== Ġ" true color ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( TERM _ PROGRAM Ġin ĠlistOf (" i Term . app ", Ġ" Apple _ Terminal ")) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= ĠInteger . parseInt (( System . getenv (" TERM _ PROGRAM _ VERSION ") Ġ?: Ġ""). split ('. ')[ 0 ]) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= ĠTER M _ PROGRAM Ġ== Ġ" i Term . app " Ġ&& Ġversion Ġ>= Ġ 3 čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Regex ("- 2 5 6 ( color )? $", ĠRegex Option . IGNORE _ CASE ). matches ( TERM )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Regex ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"^ screen | ^ x term | ^ vt 1 0 0 | ^ rx vt | color | ansi | cy g win | linux ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegex Option . IGNORE _ CASE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). matches ( TERM ) Ġ|| ĠSystem . getenv (" COL ORT ER M ") Ġ!== Ġnull čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 1 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Ansi 2 5 6 Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Hex Rgb Colors Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ