package Ġcom . quad ible . sher lock plugin Ċ Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . tasks . Exec Ċ import Ġorg . gradle . api . tasks . Internal Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . File Ċ Ċ open Ġclass ĠRecord Pre views Task Ġ: ĠExec () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠTASK _ NAME _ RECORD _ PREV IE WS Ġ= Ġ" record Pre views " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġinternal Ġvar Ġapplication Id Ġ= Ġ"" ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġinternal Ġval Ġresult : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstdout . toString (). trim () ĊĊĠĠĠ Ġprivate Ġval Ġstdout Ġ= ĠByteArrayOutputStream () ĊĊĠĠĠ Ġoverride Ġfun Ġexec () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( application Id . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Application Ġid Ġis Ġmissing . ĠNot Ġpossible Ġto Ġexecute ĠRecord Pre views Task " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstandard Output Ġ= Ġstdout ĊĊĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ project . build Dir }/ generated / source / k apt Kotlin / debug ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" pre views . txt " ĊĠĠĠĠĠĠĠ Ġ). use Lines Ġ{ Ġcomp os ables Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRecord Pre views Script . getCode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp os ables Ġ= Ġcomp os ables . toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġapplication Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġgenerate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġcode , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir Ġ= Ġproject . build Dir , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠRecord Pre views Script . name ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcommand Line Ġ= ĠlistOf (" sh ", Ġget Command ( name Ġ= ĠRecord Pre views Script . name )) ĊĠĠĠĠĠĠĠ Ġsuper . exec () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . register Record Pre views Task ( ĊĠĠĠ Ġextension : ĠSh er lock Plugin Extension Ċ ): ĠRecord Pre views Task Ġ= Ġtasks . create ( ĊĠĠĠ ĠRecord Pre views Task . TASK _ NAME _ RECORD _ PREV IE WS , ĊĠĠĠ ĠRecord Pre views Task :: class . java Ċ ) Ġ{ Ġrecord Task Ġ-> ĊĠĠĠ Ġrecord Task . do First Ġ{ ĊĠĠĠĠĠĠĠ Ġrecord Task . application Id Ġ= Ġextension . application Id ĊĠĠĠ Ġ} ĊĠĠĠ Ġrecord Task . do Last Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Pull ĠScreenshots Ġresult : Ġ${ record Task . result }") ĊĠĠĠ Ġ} Ċ } Ċ