package Ġtask Ċ Ċ import Ġensure Success Ċ import Ġgit Cmd Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Task Ċ import Ġtask Group Ċ import Ġtoo th pick Ċ Ċ @ Suppress (" UNUSED _ VARIABLE ") Ċ internal Ġfun ĠProject . create Rebuild Pat ches Task ( ĊĠĠĠ Ġreceiver : ĠTask . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠTask Ġ= Ġtasks . create (" rebuild Pat ches ") Ġ{ ĊĠĠĠ Ġreceiver ( this ) ĊĠĠĠ Ġgroup Ġ= Ġtask Group ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ(( name , Ġsub project ) Ġin Ġtoo th pick . sub projects ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( source Repo , Ġproject Dir , Ġpatches Dir ) Ġ= Ġsub project ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! patches Dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpatches Dir . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . lifecycle ("> >> ĠRe building Ġpatches Ġfor Ġ$ name ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNu ke Ġold Ġpatches ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatches Dir . list Files () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter Ġ{ Ġit . name . endsWith (". patch ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . forEach Ġ{ Ġit . delete () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAnd Ġgenerate Ġnew ĊĠĠĠĠĠĠĠĠĠĠĠ Ġensure Success ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgit Cmd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" format - patch ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- no - stat ", Ġ"-- zero - commit ", Ġ"-- full - index ", Ġ"-- no - signature ", Ġ"- N ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- o ", Ġpatches Dir . absolute Path , Ġ" origin / master ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdir Ġ= Ġproject Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Out Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . lifecycle ("> >> ĠDone Ġre building Ġpatches Ġfor Ġ$ name ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ