1010import com .intellij .execution .process .ProcessEvent ;
1111import com .intellij .execution .process .ProcessListener ;
1212import com .intellij .execution .process .ProcessOutputType ;
13- import com .intellij .icons .AllIcons .Actions ;
1413import com .intellij .notification .NotificationType ;
1514import com .intellij .openapi .Disposable ;
1615import com .intellij .openapi .application .ApplicationManager ;
1716import com .intellij .openapi .components .Service ;
1817import com .intellij .openapi .diagnostic .Logger ;
1918import com .intellij .openapi .util .Key ;
20- import com .intellij .ui .components .JBLabel ;
2119import ee .carlrobert .codegpt .CodeGPTBundle ;
2220import ee .carlrobert .codegpt .CodeGPTPlugin ;
2321import ee .carlrobert .codegpt .settings .service .ServerProgressPanel ;
2624import java .nio .charset .StandardCharsets ;
2725import java .util .List ;
2826import java .util .concurrent .CopyOnWriteArrayList ;
29- import javax .swing .SwingConstants ;
3027import org .jetbrains .annotations .NotNull ;
3128import org .jetbrains .annotations .Nullable ;
3229
@@ -41,14 +38,15 @@ public final class LlamaServerAgent implements Disposable {
4138 public void startAgent (
4239 LlamaServerStartupParams params ,
4340 ServerProgressPanel serverProgressPanel ,
44- Runnable onSuccess ) {
41+ Runnable onSuccess ,
42+ Runnable onServerTerminated ) {
4543 ApplicationManager .getApplication ().invokeLater (() -> {
4644 try {
4745 serverProgressPanel .updateText (
4846 CodeGPTBundle .get ("llamaServerAgent.buildingProject.description" ));
4947 makeProcessHandler = new OSProcessHandler (getMakeCommandLinde ());
5048 makeProcessHandler .addProcessListener (
51- getMakeProcessListener (params , serverProgressPanel , onSuccess ));
49+ getMakeProcessListener (params , serverProgressPanel , onSuccess , onServerTerminated ));
5250 makeProcessHandler .startNotify ();
5351 } catch (ExecutionException e ) {
5452 throw new RuntimeException (e );
@@ -71,7 +69,8 @@ public boolean isServerRunning() {
7169 private ProcessListener getMakeProcessListener (
7270 LlamaServerStartupParams params ,
7371 ServerProgressPanel serverProgressPanel ,
74- Runnable onSuccess ) {
72+ Runnable onSuccess ,
73+ Runnable onServerTerminated ) {
7574 LOG .info ("Building llama project" );
7675
7776 return new ProcessAdapter () {
@@ -89,7 +88,7 @@ public void processTerminated(@NotNull ProcessEvent event) {
8988 CodeGPTBundle .get ("llamaServerAgent.serverBootup.description" ));
9089 startServerProcessHandler = new OSProcessHandler .Silent (getServerCommandLine (params ));
9190 startServerProcessHandler .addProcessListener (
92- getProcessListener (params .getPort (), serverProgressPanel , onSuccess ));
91+ getProcessListener (params .getPort (), onSuccess , onServerTerminated ));
9392 startServerProcessHandler .startNotify ();
9493 } catch (ExecutionException ex ) {
9594 LOG .error ("Unable to start llama server" , ex );
@@ -101,8 +100,8 @@ public void processTerminated(@NotNull ProcessEvent event) {
101100
102101 private ProcessListener getProcessListener (
103102 int port ,
104- ServerProgressPanel serverProgressPanel ,
105- Runnable onSuccess ) {
103+ Runnable onSuccess ,
104+ Runnable onServerTerminated ) {
106105 return new ProcessAdapter () {
107106 private final ObjectMapper objectMapper = new ObjectMapper ();
108107 private final List <String > errorLines = new CopyOnWriteArrayList <>();
@@ -117,10 +116,7 @@ public void processTerminated(@NotNull ProcessEvent event) {
117116 LOG .error (error );
118117 }
119118
120- serverProgressPanel .displayComponent (new JBLabel (
121- "Server terminated" ,
122- Actions .Cancel ,
123- SwingConstants .LEADING ));
119+ onServerTerminated .run ();
124120 }
125121
126122 @ Override
0 commit comments