package Ġcom . cogn if ide . gradle . a em . pkg . tasks Ċ Ċ import Ġcom . cogn if ide . gradle . a em . common . file Names Ċ import Ġcom . cogn if ide . gradle . a em . common . tasks . Package Task Ċ import Ġcom . cogn if ide . gradle . a em . instance . Instance Exception Ċ import Ġcom . cogn if ide . gradle . a em . instance . Instance Sync Ċ import Ġcom . cogn if ide . gradle . a em . instance . names Ċ import Ġorg . gradle . api . execution . Task Execution Graph Ċ import Ġorg . gradle . api . tasks . Task Action Ċ Ċ open Ġclass ĠPur ge Ġ: ĠPackage Task () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Un install s Ġand Ġthen Ġdeletes ĠCR X Ġpackage Ġon ĠA EM Ġinstance ( s )." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtask Graph Ready ( graph : ĠTask Execution Graph ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( graph . has Task ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . props . check Force () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġpurge () Ġ{ ĊĠĠĠĠĠĠĠ Ġa em . progress ( instances . size Ġ* Ġpackages . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa em . sync Packages ( instances , Ġpackages ) Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincrement ("${ file . name } Ġ-> Ġ${ instance . name }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpkg Ġ= Ġget Package ( file ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuninstall ( this , Ġpkg . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ( this , Ġpkg . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstance Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . info ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa em . logger . debug (" Nothing Ġto Ġpurge .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa em . notifier . notify (" Package Ġpur ged ", Ġ"${ packages . file Names } Ġfrom Ġ${ instances . names }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġuninstall ( sync : ĠInstance Sync , Ġpackage Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync . uninstall Package ( package Path ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstance Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("${ e . message } ĠIs Ġit Ġinstalled Ġalready ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Cannot Ġuninstall Ġpackage .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete ( sync : ĠInstance Sync , Ġpackage Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync . delete Package ( package Path ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInstance Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Cannot Ġdelete Ġpackage .", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNAME Ġ= Ġ" a em Purge " ĊĠĠĠ Ġ} Ċ } Ċ