package Ġde . f ay ard . refresh Versions . core . internal Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . File Ċ Ċ @ Internal Refresh Versions Api Ċ enum Ġclass ĠOutput File ( var Ġpath : ĠString , Ġvar Ġexisted : ĠBoolean Ġ= Ġfalse , Ġval Ġalternative Path : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ ĠOUTPUT _ DIR (" build Src / src / main / kotlin "), ĊĠĠĠ ĠBUILD (" build Src / build . gradle . k ts ", Ġalternative Path Ġ= Ġ" build Src / build . gradle "), ĊĠĠĠ ĠGIT _ IGNORE (" build Src /. gitignore "), ĊĠĠĠ ĠLIB S (" build Src / src / main / kotlin / Lib s . kt "), ĊĠĠĠ ĠVERSION S _ KT (" build Src / src / main / kotlin / Versions . kt "), ĊĠĠĠ ĠVERSION S _ PROPERTIES (" versions . properties "), ĊĠĠĠ ĠSET T INGS _ GRAD LE (" settings . gradle "), ĊĠĠĠ ĠSET T INGS _ GRAD LE _ K TS (" settings . gradle . k ts "), ĊĠĠĠ ĠGR AD LE _ VERSION S _ CAT ALOG (" gradle / libs . versions . toml "), ĊĠĠĠ Ġ; ĊĊĊĠĠĠ Ġfun Ġread Text ( project : ĠProject ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . file ( path ). can Read () Ġ-> Ġproject . file ( path ). read Text () ĊĠĠĠĠĠĠĠ Ġalternative Path Ġ!= Ġnull Ġ&& Ġproject . file ( alternative Path ). can Read () Ġ-> Ġproject . file ( alternative Path ). read Text () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ ANSI _ RED } Cannot Ġread Ġfile Ġ$ path Ġ${ alternative Path Ġ?: Ġ"" } Ġ$ ANSI _ RESET ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" File Ġnot Ġfound Ġ$ this ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite Text ( text : ĠString , Ġproject : ĠProject , Ġmust Exists : ĠBoolean Ġ= Ġfalse ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġ! must Exists Ġ-> Ġproject . file ( path ). write Text ( text ) ĊĠĠĠĠĠĠĠ Ġproject . file ( path ). exists () Ġ-> Ġproject . file ( path ). write Text ( text ) ĊĠĠĠĠĠĠĠ Ġalternative Path Ġ!= Ġnull Ġ&& Ġproject . file ( alternative Path ). can Read () Ġ-> Ġproject . file ( alternative Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text ( text ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ ANSI _ RED } Cannot Ġwrite Ġfile Ġ$ path Ġ${ alternative Path Ġ?: Ġ"" } Ġ$ ANSI _ RESET ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" File Ġnot Ġfound Ġ$ this ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġlog File Was Modified ( delete : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog File Was Modified ( path , Ġexisted , Ġdelete ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCOL ORS ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠANSI _ RESET Ġ= Ġ"\ u 0 0 1 B [ 0 m " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠANSI _ GREEN Ġ= Ġ"\ u 0 0 1 B [ 3 2 m " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠANSI _ RED Ġ= Ġ"\ u 0 0 1 B [ 3 1 m " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠANSI _ BLUE Ġ= Ġ"\ u 0 0 1 B [ 3 4 m " ĊĊĠĠĠĠĠĠĠ Ġfun Ġlog File Was Modified ( path : ĠString , Ġexisted : ĠBoolean , Ġdelete : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisted Ġ-> ĠANSI _ BLUE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Ġ-> ĠANSI _ RED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠANSI _ GREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Ġ-> Ġ" ĠĠĠĠĠĠĠ Ġdeleted : ĠĠĠ Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisted Ġ-> Ġ" ĠĠĠĠĠĠĠ Ġmodified : ĠĠ Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" ĠĠĠĠĠĠĠ Ġnew Ġfile : ĠĠ Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ color $ status $ path $ ANSI _ RESET ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcheck Which Files Exist ( rootDir : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues (). forEach Ġ{ ĠoutputFile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputFile . exist ed Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Dir . resolve ( outputFile . path ). exists () Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputFile . alternative Path Ġ== Ġnull Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġroot Dir . resolve ( outputFile . alternative Path ). exists () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ