10
10
import com .intellij .execution .process .ProcessEvent ;
11
11
import com .intellij .execution .process .ProcessListener ;
12
12
import com .intellij .execution .process .ProcessOutputType ;
13
- import com .intellij .icons .AllIcons .Actions ;
14
13
import com .intellij .notification .NotificationType ;
15
14
import com .intellij .openapi .Disposable ;
16
15
import com .intellij .openapi .application .ApplicationManager ;
17
16
import com .intellij .openapi .components .Service ;
18
17
import com .intellij .openapi .diagnostic .Logger ;
19
18
import com .intellij .openapi .util .Key ;
20
- import com .intellij .ui .components .JBLabel ;
21
19
import ee .carlrobert .codegpt .CodeGPTBundle ;
22
20
import ee .carlrobert .codegpt .CodeGPTPlugin ;
23
21
import ee .carlrobert .codegpt .settings .service .ServerProgressPanel ;
26
24
import java .nio .charset .StandardCharsets ;
27
25
import java .util .List ;
28
26
import java .util .concurrent .CopyOnWriteArrayList ;
29
- import javax .swing .SwingConstants ;
30
27
import org .jetbrains .annotations .NotNull ;
31
28
import org .jetbrains .annotations .Nullable ;
32
29
@@ -41,14 +38,15 @@ public final class LlamaServerAgent implements Disposable {
41
38
public void startAgent (
42
39
LlamaServerStartupParams params ,
43
40
ServerProgressPanel serverProgressPanel ,
44
- Runnable onSuccess ) {
41
+ Runnable onSuccess ,
42
+ Runnable onServerTerminated ) {
45
43
ApplicationManager .getApplication ().invokeLater (() -> {
46
44
try {
47
45
serverProgressPanel .updateText (
48
46
CodeGPTBundle .get ("llamaServerAgent.buildingProject.description" ));
49
47
makeProcessHandler = new OSProcessHandler (getMakeCommandLinde ());
50
48
makeProcessHandler .addProcessListener (
51
- getMakeProcessListener (params , serverProgressPanel , onSuccess ));
49
+ getMakeProcessListener (params , serverProgressPanel , onSuccess , onServerTerminated ));
52
50
makeProcessHandler .startNotify ();
53
51
} catch (ExecutionException e ) {
54
52
throw new RuntimeException (e );
@@ -71,7 +69,8 @@ public boolean isServerRunning() {
71
69
private ProcessListener getMakeProcessListener (
72
70
LlamaServerStartupParams params ,
73
71
ServerProgressPanel serverProgressPanel ,
74
- Runnable onSuccess ) {
72
+ Runnable onSuccess ,
73
+ Runnable onServerTerminated ) {
75
74
LOG .info ("Building llama project" );
76
75
77
76
return new ProcessAdapter () {
@@ -89,7 +88,7 @@ public void processTerminated(@NotNull ProcessEvent event) {
89
88
CodeGPTBundle .get ("llamaServerAgent.serverBootup.description" ));
90
89
startServerProcessHandler = new OSProcessHandler .Silent (getServerCommandLine (params ));
91
90
startServerProcessHandler .addProcessListener (
92
- getProcessListener (params .getPort (), serverProgressPanel , onSuccess ));
91
+ getProcessListener (params .getPort (), onSuccess , onServerTerminated ));
93
92
startServerProcessHandler .startNotify ();
94
93
} catch (ExecutionException ex ) {
95
94
LOG .error ("Unable to start llama server" , ex );
@@ -101,8 +100,8 @@ public void processTerminated(@NotNull ProcessEvent event) {
101
100
102
101
private ProcessListener getProcessListener (
103
102
int port ,
104
- ServerProgressPanel serverProgressPanel ,
105
- Runnable onSuccess ) {
103
+ Runnable onSuccess ,
104
+ Runnable onServerTerminated ) {
106
105
return new ProcessAdapter () {
107
106
private final ObjectMapper objectMapper = new ObjectMapper ();
108
107
private final List <String > errorLines = new CopyOnWriteArrayList <>();
@@ -117,10 +116,7 @@ public void processTerminated(@NotNull ProcessEvent event) {
117
116
LOG .error (error );
118
117
}
119
118
120
- serverProgressPanel .displayComponent (new JBLabel (
121
- "Server terminated" ,
122
- Actions .Cancel ,
123
- SwingConstants .LEADING ));
119
+ onServerTerminated .run ();
124
120
}
125
121
126
122
@ Override
0 commit comments