/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠHeart Pattern Ġand ĠS pi kot Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 Ġgro ovy . util . Node Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . Dependency Ċ import Ġorg . gradle . api . artifacts . Module Dependency Ċ import Ġorg . gradle . api . publish . maven . Maven P om Ċ import Ġorg . gradle . api . tasks . Source Set Ċ import Ġorg . gradle . kotlin . dsl . get Ċ import Ġorg . gradle . kotlin . dsl . with Type Ċ import Ġjava . io . File Ċ Ċ /* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠHeart Pattern Ġand ĠS pi kot Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠApply Ġdefault Ġsetting Ġof Ġpom . xml Ċ Ġ*/ Ċ fun ĠMaven P om . default Setting ( project : ĠProject ) Ġ{ ĊĠĠĠ Ġname . set (" sp ik ot Ġ${ project . name }") ĊĠĠĠ Ġdescription . set (" Spi kot Ġframework Ġ${ project . name } Ġsubmodule ") ĊĠĠĠ Ġurl . set (" https :// github . com / Spi kot / Spi kot ") ĊĠĠĠ Ġpackaging Ġ= Ġ" jar " ĊĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" MIT ĠLicense ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . opensource . org / licenses / mit - license ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdistribution . set (" repo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( developer Ġin Ġproject . parse Developer ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( developer . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( developer . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( developer . email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( developer . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimezone . set ( developer . timezone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : https :// github . com / Spi kot / Spi kot . git ") ĊĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : https :// github . com / Spi kot / Spi kot . git ") ĊĠĠĠĠĠĠĠ Ġtag . set (" HEAD ") ĊĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / Spi kot / Spi kot ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġissue Management Ġ{ ĊĠĠĠĠĠĠĠ Ġsystem . set (" github ") ĊĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / Spi kot / Spi kot / issues ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġci Management Ġ{ ĊĠĠĠĠĠĠĠ Ġsystem . set (" Team City ") ĊĠĠĠĠĠĠĠ Ġurl . set (" https :// team city . he ar tp attern . io /") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAppend Ġ[ source Set ]' s Ġdependencies Ċ Ġ*/ Ċ fun ĠMaven P om . append Dependencies ( project : ĠProject , Ġsource Set : ĠSource Set ) Ġ{ ĊĠĠĠ Ġwith Xml Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġas Node (). append Node (" dependencies ") ĊĠĠĠĠĠĠĠ Ġfor Ġ(( configuration Name Getter , Ġscope ) Ġin Ġconfiguration Maven Mapping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfiguration Name Ġ= Ġconfiguration Name Getter ( source Set ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dependency Ġin Ġproject . configurations [ configuration Name ]. dependencies . with Type < Module Dependency >()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dependency . group Ġ== Ġ" org . sp ig ot mc " Ġ&& Ġdependency . name Ġ== Ġ" sp ig ot ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies . append Dependency ( dependency , Ġscope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠNode . append Dependency ( dependency : ĠDependency , Ġscope : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġdependency Node Ġ= Ġappend Node (" dependency ") ĊĠĠĠ Ġdependency Node . append Node (" groupId ", Ġdependency . group ) ĊĠĠĠ Ġdependency Node . append Node (" artifactId ", Ġdependency . name ) ĊĠĠĠ Ġdependency Node . append Node (" version ", Ġdependency . version ) ĊĠĠĠ Ġdependency Node . append Node (" scope ", Ġscope ) Ċ } Ċ Ċ private Ġval Ġconfiguration Maven Mapping Ġ= Ġmap Of ( ĊĠĠĠ ĠSource Set :: get Api Configuration Name Ġto Ġ" compile ", ĊĠĠĠ ĠSource Set :: get Compile Only Configuration Name Ġto Ġ" compile ", ĊĠĠĠ ĠSource Set :: get Runtime Only Configuration Name Ġto Ġ" runtime " Ċ ) Ċ Ċ private Ġdata Ġclass ĠDeveloper ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġemail : ĠString , ĊĠĠĠ Ġval Ġurl : ĠString , ĊĠĠĠ Ġval Ġtimezone : ĠString Ċ ) Ċ Ċ private Ġfun ĠProject . parse Developer (): ĠList < Developer > Ġ{ ĊĠĠĠ Ġreturn ĠFile ( project . rootDir , Ġ" AUTHORS . md "). read Lines (). chunk ed ( 6 ). map Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġline [ 0 ]. substring After ("- Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġline [ 1 ]. substring After (" Email : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġwebsite Ġ= Ġline [ 3 ]. substring After (" Website : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġtimezone Ġ= Ġline [ 4 ]. substring After (" Time Ġzone : Ġ") ĊĠĠĠĠĠĠĠ ĠDeveloper ( name , Ġemail , Ġwebsite , Ġtimezone ) ĊĠĠĠ Ġ} Ċ }