/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . Ġ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 Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . tasks . Source Set Container Ċ import Ġorg . gradle . kotlin . dsl . get Ċ import Ġjava . io . File Ċ import Ġjava . net . URI Ċ import Ġjava . nio . file . Paths Ċ Ċ const Ġval ĠCommit Hash Length Ġ= Ġ 6 Ċ Ċ val Ġis Ci Env : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġgetenv Safe (" CI ") ?. to Boolean () Ġ== Ġtrue Ċ Ċ val Ġplugin Release Channels : ĠArray < String > ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( library Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSnapshot Ġ-> ĠarrayOf (" dev ") ĊĠĠĠĠĠĠĠ Ġis ĠAlpha Ġ-> ĠarrayOf (" e ap ") ĊĠĠĠĠĠĠĠ Ġis ĠRelease Candidate Ġ-> ĠarrayOf (" rc ") ĊĠĠĠĠĠĠĠ Ġis ĠSt able Ġ-> ĠarrayOf () ĊĠĠĠ Ġ} Ċ Ċ 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 ) Ċ Ċ fun ĠVersion . to Version Name (): ĠString Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSnapshot Ġ-> Ġcommit ?. let Ġ{ Ġsha Ġ-> Ġ"${ sha . take ( Commit Hash Length )} - SNAPSHOT " Ġ} Ġ?: Ġ" SNAPSHOT " ĊĠĠĠĠĠĠĠ Ġis ĠAlpha Ġ-> Ġ"${ main Version . version Name }- alpha $ alpha " ĊĠĠĠĠĠĠĠ Ġis ĠRelease Candidate Ġ-> Ġ"${ main Version . version Name }-${ alpha ?. let Ġ{ Ġ" alpha $ it -" Ġ} Ġ?: Ġ"" } rc ${ candidate }" ĊĠĠĠĠĠĠĠ Ġis ĠSt able Ġ-> Ġmain Version . version Name ĊĠĠĠ Ġ} Ċ Ċ fun ĠVersion . to O ss rh Deployment Uri (): ĠURI Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSnapshot Ġ-> ĠURI (" https :// s 0 1 . oss . son atype . org / content / repositories / snapshots /") ĊĠĠĠĠĠĠĠ Ġis ĠAlpha , Ġis ĠSt able , Ġis ĠRelease Candidate Ġ-> ĠURI (" https :// s 0 1 . oss . son atype . org / service / local / staging / deploy / maven 2 /") ĊĠĠĠ Ġ} Ċ Ċ 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 Ċ Ċ fun ĠProject . install Git Hooks () Ġ= Ġafter Evaluate Ġ{ ĊĠĠĠ Ġproject Hooks Dir . list Files Ġ{ Ġf Ġ-> Ġf . extension Ġ== Ġ" sh " Ġ} ĊĠĠĠĠĠĠĠ Ġ? . forEach Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠFile ( git Hooks Dir , Ġf . name Without Extension ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . copy To ( target , Ġoverwrite Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . set Executable ( true , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ 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 () Ċ Ċ fun ĠProject . ci Variable ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= Ġgetenv Safe ( name ) Ġ?: ĠgetProperty Safe ( name ) Ċ Ċ private Ġfun ĠProject . getProperty Safe ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= ĊĠĠĠ Ġproperties [ name ]?. toString (). take Unless ( CharSequence ? :: isNull OrEmpty ) Ċ Ċ fun Ġgetenv Safe ( ĊĠĠĠ Ġname : ĠString , Ċ ): ĠString ? Ġ= ĊĠĠĠ ĠSystem . getenv ( name ). take Unless ( CharSequence ? :: isNull OrEmpty ) Ċ Ċ internal Ġval ĠMajor Minor Patch . version Name ĊĠĠĠ Ġget () Ġ= Ġ"${ major }.${ minor }.${ patch }" Ċ