/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 . ĠM ak sym ĠO li iny k . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . net . URI Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . tasks . Source Set Container Ċ import Ġorg . gradle . kotlin . dsl . get Ċ Ċ const Ġval ĠCommit Hash Length Ġ= Ġ 6 Ċ const Ġval ĠSon atype Profile Id Ġ= Ġ" 1 c 7 8 bd 5 d 6 fbb 0 c " Ċ val ĠN exus Url Ġ= ĠURI (" https :// s 0 1 . oss . son atype . org / service / local /") Ċ val ĠSnapshot N exus Url Ġ= ĠURI (" https :// s 0 1 . oss . son atype . org / content / repositories / snapshots /") Ċ Ċ val Ġis Ci Env : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġgetenv Safe (" CI ") ?. to Boolean () Ġ== Ġtrue Ċ Ċ val ĠPlugin Release Channels : ĠCollection < String > ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( library Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSnapshot Ġ-> ĠlistOf (" dev ") ĊĠĠĠĠĠĠĠ Ġis ĠAlpha Ġ-> ĠlistOf (" e ap ") ĊĠĠĠĠĠĠĠ Ġis ĠRelease Candidate Ġ-> ĠlistOf (" rc ") ĊĠĠĠĠĠĠĠ Ġis ĠSt able Ġ-> ĠlistOf () ĊĠĠĠ Ġ} Ċ Ċ val Ġbranch : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġgetenv Safe (" GITHUB _ REF _ NAME ") ĊĠĠĠĠĠĠĠ Ġ? . remove Prefix (" refs / heads /") ĊĠĠĠĠĠĠĠ Ġ? . remove Prefix (" refs / tags /") ĊĠĠĠĠĠĠĠ Ġ?: Ġlocal Branch Ċ Ċ val Ġbranch OrDefault : ĠString ĊĠĠĠ Ġget () Ġ= Ġbranch Ġ?: Ġ" master " Ċ Ċ val Ġtag : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġgetenv Safe (" GITHUB _ TAG ") ĊĠĠĠĠĠĠĠ Ġ? . take Unless Ġ{ Ġtag Ġ-> Ġtag . startsWith (" refs / heads /") Ġ} ĊĠĠĠĠĠĠĠ Ġ? . remove Prefix (" refs / tags /") Ċ Ċ val Ġcommit Sha : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġgetenv Safe (" GITHUB _ SHA ") Ċ Ċ val Ġlibrary Version : ĠVersion ĊĠĠĠ Ġget () Ġ= ĠVersion ( tag , Ġcommit Sha ) Ċ Ċ val ĠProject . oss rh User : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġci Variable (" OSS RH _ USER ") Ċ Ċ val ĠProject . oss rh Password : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġci Variable (" OSS RH _ PASSWORD ") Ċ Ċ val ĠProject . signing Key : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġci Variable (" SIGN ING _ KEY ") Ċ Ċ val ĠProject . signing Password : ĠString ? ĊĠĠĠ Ġget () Ġ= Ġci Variable (" SIGN ING _ PASSWORD ") Ċ Ċ val ĠProject . project Source Sets : ĠSource Set Container ĊĠĠĠ Ġget () Ġ= Ġextensions [" source Sets "] Ġas ĠSource Set Container Ċ Ċ val ĠProject . documentation Dir : ĠFile ĊĠĠĠ Ġget () Ġ= Ġbuild Dir . resolve (" documentation ") Ċ Ċ val ĠProject . libs Dir : ĠFile ĊĠĠĠ Ġget () Ġ= Ġbuild Dir . resolve (" libs ") Ċ Ċ val ĠProject . distributions Dir : ĠFile ĊĠĠĠ Ġget () Ġ= Ġbuild Dir . resolve (" distributions ") Ċ Ċ val ĠProject . artifacts Dir : ĠFile ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġroot Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( root Ġ!= Ġroot . root Project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Ġ= Ġroot . root Project ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot . build Dir . resolve (" artifacts /$ name ") ĊĠĠĠ Ġ} Ċ Ċ val ĠProject . project Hooks Dir : ĠFile ĊĠĠĠ Ġget () Ġ= ĠPaths . get ( rootDir . path , Ġ" hooks "). to File () Ċ Ċ val ĠProject . git Hooks Dir : ĠFile ĊĠĠĠ Ġget () Ġ= ĠPaths . get ( rootDir . path , Ġ". git ", Ġ" hooks "). to File () Ċ Ċ val ĠProject . de te kt Config : ĠFile ĊĠĠĠ Ġget () Ġ= ĠPaths . get ( rootDir . path , Ġ" de te kt ", Ġ" de te kt - config . yml "). to File () Ċ Ċ val ĠProject . de te kt Baseline : ĠFile ĊĠĠĠ Ġget () Ġ= ĠPaths . get ( rootDir . path , Ġ" de te kt ", Ġ" de te kt - baseline . xml "). to File () Ċ Ċ val ĠProject . has Kotlin Multi platform Plugin : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġplugins . has Plugin (" org . jetbrains . kotlin . multi platform ") Ċ Ċ val ĠProject . has Kotlin Jvm Plugin : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġplugins . has Plugin (" org . jetbrains . kotlin . jvm ") Ċ Ċ val Ġlocal Branch : ĠString ? ĊĠĠĠ Ġget () Ġ= ĠRuntime . get Runtime (). exec (" git Ġrev - parse Ġ-- abbrev - ref ĠHEAD ") ĊĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġit . waitFor () Ġ} ĊĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġit . exit Value () Ġ== Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠBufferedReader ( InputStream Reader ( it . inputStream )) Ġ} ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġit . use Ġ{ Ġreader Ġ-> Ġreader . readLine (). trim () Ġ} Ġ} Ċ Ċ val ĠProject . test Reports Path : ĠPath ĊĠĠĠ Ġget () Ġ= ĠPaths . get ( root Project . build Dir . path , Ġ" junit - reports ", Ġproject . name ) Ċ Ċ val ĠProject . test Reports Dir : ĠFile ĊĠĠĠ Ġget () Ġ= Ġtest Reports Path . to File () Ċ Ċ val ĠProject . html Test Reports Dir : ĠFile ĊĠĠĠ Ġget () Ġ= ĠFile ( test Reports Dir , Ġ" html ") Ċ Ċ val ĠProject . xml Test Reports Dir : ĠFile ĊĠĠĠ Ġget () Ġ= ĠFile ( test Reports Dir , Ġ" xml ") Ċ Ċ fun ĠProject . ci Variable ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= Ġgetenv Safe ( name ) Ġ?: ĠgetProperty Safe ( name ) Ċ Ċ fun Ġgetenv Safe ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= ĊĠĠĠ ĠSystem . getenv ( name ). take Unless ( CharSequence ? :: isNull OrEmpty ) Ċ Ċ private Ġfun ĠProject . getProperty Safe ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= ĊĠĠĠ Ġproperties [ name ]?. toString (). take Unless ( CharSequence ? :: isNull OrEmpty ) Ċ