package Ġfast . api . ext Ċ Ċ import Ġfast . api .* Ċ import Ġfast . dsl . CommandLine Result Ċ import Ġfast . runtime . Task Context Ċ import Ġfast . log . K Logging Ċ import Ġfast . log . Ok Logging Ċ Ċ type alias ĠGradle Task Context Ġ= ĠChild Task Context < Gradle Extension , ĠGradle Config > ĊĊ Ċ class ĠGradle Extension ( ĊĠ Ġconfig : Ġ( Task Context < *, Ġ*, Ġ* >) Ġ-> ĠGradle Config Ġ= Ġ{ Gradle Config ()} Ċ ) Ġ: ĠDeploy Fast Extension < Gradle Extension , ĠGradle Config >(" gradle ", Ġconfig Ċ ) Ġ{ ĊĠ Ġval Ġz ipped App Ġ= ĠZ ipped App Extension ({ ctx Ġ-> ĊĠĠĠ Ġval Ġgradle Ctx Ġ= Ġctx . getParent Ctx < Gradle Task Context >({ it . task . name Ġ== Ġ" gradle "}) !! ĊĊĠĠĠ ĠZ ipped AppConfig ( ĊĠĠĠĠĠ Ġ" gradle ", ĊĠĠĠĠĠ Ġgradle Ctx . config . version ĊĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠ Ġarchive BaseUrl Ġ= Ġ" https :// services . gradle . org / distributions " ĊĠĠĠĠĠ Ġarchive Name Ġ= Ġ{" gradle -${ ctx . config . version }- bin . zip "} ĊĊĠĠĠĠĠ Ġarchive Checksum Ġ= ĠCheck sum ( sha 2 5 6 Ġ= Ġ" fca 5 0 8 7 dc 8 b 5 0 c 6 4 6 5 5 c 0 0 0 9 8 9 6 3 5 6 6 4 a 7 3 b 1 1 b 9 bd 3 7 0 3 c 7 d 6 cab d 3 1 b 7 dc db 0 4 ") ĊĊĠĠĠĠĠ Ġwith S ymlink s Ġ{ ĊĠĠĠĠĠĠĠ Ġ"/ usr / local / bin / gradle " Ġto Ġ" bin / gradle " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ}) ĊĊĊĠ Ġoverride Ġval Ġtasks Ġ= Ġ{ Ġparent Ctx : ĠChild Task Context < *, Ġ*> Ġ-> ĊĠĠĠ ĠGradle Tasks ( this @ Gradle Extension , Ġparent Ctx ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġextract Error ( r : ĠCommandLine Result < Boolean >) Ġ= ĊĠĠĠĠĠ Ġr . text () ĊĠĠĠĠĠĠĠ Ġ. substring Before Last (" Build Ġfailed ") ĊĠĠĠĠĠĠĠ Ġ. substring Before Last (" BUILD ĠFAILED ") ĊĠĠĠĠĠĠĠ Ġ. substring Before Last (" FAILURE :") ĊĠĠĠĠĠĠĠ Ġ. trim () ĊĠ Ġ} Ċ } Ċ Ċ class ĠGradle Config ( ĊĠ Ġvar Ġversion : ĠString Ġ= Ġ" 4 . 7 " Ċ ) Ġ: ĠExtension Config Ċ Ċ class ĠGradle Tasks ( ext : ĠGradle Extension , Ġparent Ctx : ĠChild Task Context < *, Ġ* >) ĊĠ Ġ: ĠNamed Ext Tasks < Gradle Extension , ĠGradle Config >( ext , Ġparent Ctx ) Ġ{ ĊĊĠ Ġsuspend Ġfun Ġinstall () Ġ= ĊĠĠĠ Ġextension . z ipped App . tasks ( ext Ctx ). install () ĊĊĠ Ġcompanion Ġobject Ġ: ĠOk Logging () Ċ } ĊĊĊ