/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 2 2 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġjet brains . build Server . mono Ċ Ċ import Ġjet brains . build Server . agent .* Ċ import Ġjet brains . build Server . dotnet . Mono Constants Ċ import Ġjet brains . build Server . agent . Version Ċ import Ġjet brains . build Server . util . EventDispatcher Ċ import Ġjet brains . build Server . agent . Logger Ċ Ċ class ĠMono Properties Extension ( ĊĠĠĠĠĠĠĠ Ġevents : ĠEvent Dispatcher < Agent Life Cycle Listener >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ tool Provider : ĠTool Provider , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ command Line Executor : ĠCommandLine Executor , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ_ version Parser : ĠVersion Parser ) ĊĠĠĠ Ġ: ĠAgent Life Cycle Adapter () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġevents . addListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Agent Configuration Loaded ( agent : ĠBuild Agent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLOG . debug (" Loc ating ĠMono ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= ĠCommandLine ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTarget Type . Tool , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPath (_ tool Provider . getPath ( Mono Constants . RUN NER _ TYPE )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPath (". "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( CommandLine Argument ("-- version ", ĠCommandLine Argument Type . Mandatory )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ command Line Executor . try Execute ( command )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ_ version Parser . parse ( it . standard Output ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( version Ġ!= ĠVersion . Empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent . configuration . add Configuration Parameter ( Mono Constants . CONFIG _ PATH , Ġcommand . executable File . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Found ĠMono Ġ$ it Ġat Ġ${ command . executable File . path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Mono Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠTool Cannot Be Found Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Mono Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . debug ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOG Ġ= ĠLogger . getLogger ( Mono Properties Extension :: class . java ) ĊĠĠĠ Ġ} Ċ }