import Ġorg . gradle . api . internal . artifacts . result . Default Resolved Dependency Result Ċ import Ġjava . security . Message Digest Ċ import Ġjava . util .* Ċ Ċ /* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ġor Ġmore Ċ Ġ* Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ċ Ġ* Ġthis Ġwork Ġfor Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . Ċ Ġ* ĠThe ĠASF Ġlicenses Ġthis Ġfile Ġto ĠYou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ċ Ġ* Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ċ Ġ* Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ include (" batch test ") Ċ Ċ val Ġupper Case Letters Ġ= Ġ"\\ p { Upper }". to Regex () Ċ Ċ fun ĠString . to K eb ab Case () Ġ= ĊĠĠĠ Ġreplace ( upper Case Letters ) Ġ{ Ġ"- ${ it . value . toLowerCase () }" Ġ} Ċ Ċ fun Ġbuild FileName For ( project Dir Name : ĠString ) Ġ= ĊĠĠĠ Ġ"$ project Dir Name . gradle . k ts " Ċ Ċ for Ġ( project Ġin Ġroot Project . children ) Ġ{ ĊĠĠĠ Ġval Ġproject Dir Name Ġ= Ġproject . name . to K eb ab Case () ĊĠĠĠ Ġproject . project Dir Ġ= Ġfile (" sub projects /$ project Dir Name ") ĊĠĠĠ Ġproject . build FileName Ġ= Ġbuild FileName For ( project Dir Name ) ĊĠĠĠ Ġassert ( project . project Dir . isDirectory ) ĊĠĠĠ Ġassert ( project . build File . isFile ) Ċ } Ċ Ċ build script Ġ{ ĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġclasspath (" com . github . v ls i . gradle : checksum - dependency - plugin : 1 . 1 9 . 0 ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġgradle Plugin Portal () ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠNote : Ġwe Ġneed Ġto Ġverify Ġthe Ġchecksum Ġfor Ġchecksum - dependency - plugin Ġitself Ċ val Ġexpected Sha 5 1 2 Ġ= ĊĠĠĠ Ġ" D 7 B 1 A 0 C 7 9 3 7 DC B 1 1 5 3 6 F 9 7 C 5 2 FE 2 5 7 5 2 BD 7 DA 6 0 1 1 2 9 9 E 8 1 FA 5 9 AD 4 4 6 A 8 4 3 2 6 5 A 6 FA 0 7 9 E CA 1 D 5 FD 4 9 C 4 B 3 C 2 4 9 6 A 3 6 3 C 6 0 C 5 9 3 9 2 6 8 B ED 0 B 7 2 2 E FB 8 BB 6 7 8 7 A 2 B 1 9 3 " Ċ Ċ fun ĠFile . sha 5 1 2 (): ĠString Ġ{ ĊĠĠĠ Ġval Ġmd Ġ= Ġjava . security . Message Digest . getInstance (" SHA - 5 1 2 ") ĊĠĠĠ ĠforEach Block Ġ{ Ġbuffer , Ġbytes Read Ġ-> ĊĠĠĠĠĠĠĠ Ġmd . update ( buffer , Ġ 0 , Ġbytes Read ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠBigInteger ( 1 , Ġmd . digest ()). toString ( 1 6 ). toUpperCase () Ċ } Ċ // Ċ val Ġchecksum Dependency Jar : ĠFile Ġ= Ġbuild script . configurations [" classpath "]. resolve (). first () Ċ val Ġactual Sha 5 1 2 Ġ= Ġchecksum Dependency Jar . sha 5 1 2 () Ċ if Ġ( actual Sha 5 1 2 Ġ!= Ġexpected Sha 5 1 2 ) Ġ{ ĊĠĠĠ Ġthrow ĠGradle Exception ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠCheck sum Ġmismatch Ġfor Ġ$ checksum Dependency Jar ĊĠĠĠĠĠĠĠ ĠExpected : Ġ$ expected Sha 5 1 2 ĊĠĠĠĠĠĠĠĠĠ ĠActual : Ġ$ actual Sha 5 1 2 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ) Ċ } Ċ Ċ apply ( plugin Ġ= Ġ" com . github . v ls i . checksum - dependency ") Ċ