package Ġorg . ker ala . ctl . commands Ċ Ċ import Ġcom . github . aj alt . cli kt . core . Cli kt Command Ċ import Ġcom . github . aj alt . cli kt . core . require Object Ċ import Ġcom . github . aj alt . cli kt . parameters . options . flag Ċ import Ġcom . github . aj alt . cli kt . parameters . options . option Ċ import Ġorg . ker ala . ctl . Context Ċ import Ġorg . ker ala . ctl . any Ċ import Ġorg . ker ala . ctl . as Channel Ċ import Ġorg . ker ala . ctl . send Command Ċ import Ġorg . ker ala . shared . client . Client ACK Ċ Ċ type alias ĠJson Transformer < T > Ġ= Ġ( json String : ĠString ) Ġ-> ĠT Ċ Ċ class ĠBase Read Command < T >( private Ġval Ġcommand : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġjson Transformer : ĠJson Transformer < T >) Ġ: ĠCli kt Command ( name Ġ= Ġcommand ) Ġ{ ĊĠ Ġ/* ĠDescribe Ġresponse Ġin Ġjson Ġ*/ ĊĠ Ġprivate Ġval Ġjson Ġby Ġoption ("-- json ", Ġhelp Ġ= Ġ" display Ġresponse Ġin Ġjson "). flag () ĊĠ Ġprivate Ġval Ġctx Ġby Ġrequire Object < Context >() ĊĊĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsend Command ( ctx . cluster !!. any (). as Channel (), Ġcommand , Ġempty List ()) ĊĠĠĠĠĠ Ġwhen Ġ( response . response Code ) Ġ{ ĊĠĠĠĠĠĠĠ ĠClient ACK . Codes . OK . id Ġ-> Ġdisplay ( response . response ) ĊĠĠĠĠĠĠĠ ĠClient ACK . Codes . ERROR . id Ġ-> Ġthrow ĠException ( response . response ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġecho ( e . message , Ġerr Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdisplay ( response : ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( json ) Ġ{ ĊĠĠĠĠĠ Ġecho ( response ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġecho ( json Transformer ( response )) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ