// package Ġru . element ary team . element ary plugin intellij Ċ // Ċ // import Ġcom . intellij . execution . process . Process Adapter Ċ // import Ġcom . intellij . execution . process . Process Event Ċ // import Ġcom . intellij . openapi . action System . DataContext Ċ // import Ġcom . intellij . openapi . project . Project Ċ // import Ġio . flutter . Flutter Messages Ċ // import Ġio . flutter . actions . Flutter Sdk Action Ċ // import Ġio . flutter . pub . Pub Root Ċ // import Ġio . flutter . sdk . Flutter Sdk Ċ // import Ġio . flutter . utils . Progress Helper Ċ // Ċ // /** Ċ // Ġ* ĠAction Ġthat Ġinstall ĠCLI Ġpackage Ċ // Ġ*/ Ċ // class ĠElement ary Cli Install Action Ġ: ĠFlutter Sdk Action () Ġ{ Ċ // Ċ // ĠĠĠ Ġoverride Ġfun Ġstart Command ( Ċ // ĠĠĠĠĠĠĠ Ġproject : ĠProject , Ċ // ĠĠĠĠĠĠĠ Ġsdk : ĠFlutter Sdk , Ċ // ĠĠĠĠĠĠĠ Ġroot : ĠPub Root ?, Ċ // ĠĠĠĠĠĠĠ Ġcontext : ĠData Context Ċ // ĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġpub Full Arguments Ġ= ĠarrayOf ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ" global ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ" activate ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ" element ary _ cli ", Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġprogress Helper Ġ= ĠProgress Helper ( project ) Ċ // ĠĠĠĠĠĠĠ Ġprogress Helper . start (" Element ary Cli Install Action ") Ċ // ĠĠĠĠĠĠĠ Ġval Ġprocess Handler Ġ= Ġsdk . flutter Pub ( root , Ġ* pub Full Arguments ). start In Console ( project ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( process Handler Ġ== Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Helper . done () Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Handler . add Process Listener ( object Ġ: ĠProcess Adapter () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess Terminated ( event : ĠProcess Event ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Helper . done () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexit Code Ġ= Ġevent . exit Code Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exit Code Ġ!= Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlutter Messages . show Error ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error Ġinstalling Ġ` element ary _ cli `", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"` activate Ġcommand Ġreturned : Ġ$ exit Code ", Ġproject Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlutter Messages . show Info ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Installed Ġelement ary _ cli ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Package Ġ` element ary _ cli ` Ġsuccessfully Ġactivated .", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //} Ċ