/* Ċ Ġ* ĠThis Ġfile Ġis Ġpart Ġof ĠT ooth pick , Ġlicensed Ġunder Ġthe ĠMIT ĠLicense . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 - 2 0 2 1 ĠJ ason ĠPen illa Ġ& ĠContributors Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ package Ġxyz . j pen illa . tooth pick Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . initialization . Project Descriptor Ċ import Ġorg . gradle . api . initialization . Settings Ċ import Ġjava . util . Locale Ċ Ċ /** Ċ Ġ* ĠComp anion Ġsettings Ġplugin Ġfor Ġ[ T ooth pick ]. Ċ Ġ*/ Ċ public Ġclass ĠT ooth pick Settings Plugin Ġ: ĠPlugin < Settings > Ġ{ ĊĠ Ġoverride Ġfun Ġapply ( target : ĠSettings ) Ġ{ ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠConfig ures Ġan ĠAPI Ġand ĠServer Ġsub project Ġusing Ġthe Ġstandard ĠT ooth pick Ġconventions Ġfor Ġthe Ġprovided Ċ Ġ* Ġparent Ġproject Ġand Ġfork Ġname . Ċ Ġ* Ċ Ġ* ĠStandard Ġconventions Ġinclude Ġthe Ġfollowing : Ċ Ġ* Ġ Ġ- ĠAPI Ġproject Ġnamed Ġ`$ fork Name Lower case - api ` Ċ Ġ* ĠĠĠ Ġ- ĠProject Ġdirectory Ġset Ġto Ġ`$ fork Name - API ` Ċ Ġ* ĠĠĠ Ġ- ĠBuild Ġscript Ġconfigured Ġto Ġ` ../ api . gradle . k ts ` Ċ Ġ* Ġ Ġ- ĠServer Ġproject Ġnamed Ġ`$ fork Name Lower case - server ` Ċ Ġ* ĠĠĠ Ġ- ĠProject Ġdirectory Ġset Ġto Ġ`$ fork Name - Server ` Ċ Ġ* ĠĠĠ Ġ- ĠBuild Ġscript Ġconfigured Ġto Ġ` ../ server . gradle . k ts ` Ċ Ġ* Ċ Ġ* ĠTo Ġcustomize Ġany Ġaspects Ġof Ġthe Ġconfigured Ġsub projects , Ġyou Ġcan Ġutilize Ġthe Ġmethods Ġon Ġ[ T ooth pick Settings ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġparent Project Ġparent Ġproject Ġwhich Ġthe Ġ[ T ooth pick ] Ġplugin Ġwill Ġbe Ġapplied Ġto Ċ Ġ* Ġ@ param Ġfork Name Ġname Ġof Ġthe Ġfork , Ġcan Ġinclude Ġuppercase Ġletters Ġbut Ġshould Ġnot Ġinclude Ġspaces Ċ Ġ* Ġ@ param Ġconfiguration Ġoptional Ġconfiguration Ġblock Ġto Ġcustomize Ġtoo th pick Ġsub projects Ċ Ġ* Ġ@ return Ġthe Ġ[ T ooth pick Settings ] Ġinstance Ċ Ġ*/ Ċ public Ġfun ĠSettings . setup T ooth pick Project ( ĊĠ Ġparent Project : ĠProject Descriptor , ĊĠ Ġfork Name : ĠString , ĊĠ Ġconfiguration : ĠT ooth pick Settings . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠT ooth pick Settings Ġ{ ĊĠ Ġval Ġfork Name Lower case Ġ= Ġfork Name . toLowerCase ( Locale . ROOT ) ĊĊĠ Ġfun Ġsetup Sub project ( name : ĠString , Ġblock : ĠProject Descriptor . () Ġ-> ĠUnit ): ĠProject Descriptor Ġ{ ĊĠĠĠ Ġval Ġparent Path Ġ= Ġparent Project . path ĊĠĠĠ Ġval Ġsub project Path Ġ= Ġ"$ parent Path ${ if Ġ( parent Path . endsWith (" :" )) Ġ"" Ġelse Ġ":" }$ name " ĊĠĠĠ Ġinclude ( sub project Path ) ĊĠĠĠ Ġreturn Ġproject ( sub project Path ). apply ( block ) ĊĠ Ġ} ĊĊĠ Ġval Ġapi Ġ= Ġsetup Sub project ("$ fork Name Lower case - api ") Ġ{ ĊĠĠĠ Ġproject Dir Ġ= Ġparent Project . project Dir . resolve ("$ fork Name - API ") ĊĠĠĠ Ġbuild FileName Ġ= Ġ"../ sub projects / api . gradle . k ts " ĊĠ Ġ} ĊĠ Ġval Ġserver Ġ= Ġsetup Sub project ("$ fork Name Lower case - server ") Ġ{ ĊĠĠĠ Ġproject Dir Ġ= Ġparent Project . project Dir . resolve ("$ fork Name - Server ") ĊĠĠĠ Ġbuild FileName Ġ= Ġ"../ sub projects / server . gradle . k ts " ĊĠ Ġ} ĊĊĠ Ġreturn ĠT ooth pick Settings ( parent Project , Ġapi , Ġserver ). apply ( configuration ) Ċ } Ċ Ċ /** Ċ Ġ* ĠEx poses Ġmethods Ġto Ġcustomize Ġtoo th pick Ġsub project Ġconfiguration . Ċ Ġ*/ Ċ public Ġclass ĠT ooth pick Settings ( ĊĠ Ġprivate Ġval Ġparent Project : ĠProject Descriptor , ĊĠ Ġpublic Ġval Ġapi Project : ĠProject Descriptor , ĊĠ Ġpublic Ġval Ġserver Project : ĠProject Descriptor Ċ ) Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠConfigure Ġthe ĠAPI Ġsub project Ġ[ Project Descriptor ]. ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġconfiguration Ġconfiguration Ġblock ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġfun Ġapi Project ( configuration : ĠProject Descriptor . () Ġ-> ĠUnit ): ĠProject Descriptor Ġ= Ġapi Project . apply ( configuration ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConfigure Ġthe ĠServer Ġsub project Ġ[ Project Descriptor ]. ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġconfiguration Ġconfiguration Ġblock ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġfun Ġserver Project ( configuration : ĠProject Descriptor . () Ġ-> ĠUnit ): ĠProject Descriptor Ġ= Ġserver Project . apply ( configuration ) Ċ } Ċ