Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0eed533

Browse files
authored
fix: Improve agent waiting/timeout message behavior in ssh (#4999)
1 parent aa9fa2b commit 0eed533

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

cli/cliui/agent.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,30 +64,36 @@ func Agent(ctx context.Context, writer io.Writer, opts AgentOptions) error {
6464
os.Exit(1)
6565
}()
6666

67-
warningShown := false
68-
warnAfter := time.NewTimer(opts.WarnInterval)
69-
defer warnAfter.Stop()
70-
showWarning := func() {
71-
warnAfter.Stop()
72-
67+
var waitMessage string
68+
messageAfter := time.NewTimer(opts.WarnInterval)
69+
defer messageAfter.Stop()
70+
showMessage := func() {
7371
resourceMutex.Lock()
7472
defer resourceMutex.Unlock()
75-
if warningShown {
73+
74+
m := waitingMessage(agent)
75+
if m == waitMessage {
7676
return
7777
}
78-
warningShown = true
78+
moveUp := ""
79+
if waitMessage != "" {
80+
// If this is an update, move a line up
81+
// to keep it tidy and aligned.
82+
moveUp = "\033[1A"
83+
}
84+
waitMessage = m
7985

80-
message := waitingMessage(agent)
8186
// This saves the cursor position, then defers clearing from the cursor
8287
// position to the end of the screen.
83-
_, _ = fmt.Fprintf(writer, "\033[s\r\033[2K%s\n\n", Styles.Paragraph.Render(Styles.Prompt.String()+message))
88+
_, _ = fmt.Fprintf(writer, "\033[s\r\033[2K%s%s\n\n", moveUp, Styles.Paragraph.Render(Styles.Prompt.String()+waitMessage))
8489
defer fmt.Fprintf(writer, "\033[u\033[J")
8590
}
8691
go func() {
8792
select {
8893
case <-ctx.Done():
89-
case <-warnAfter.C:
90-
showWarning()
94+
case <-messageAfter.C:
95+
messageAfter.Stop()
96+
showMessage()
9197
}
9298
}()
9399

@@ -110,7 +116,7 @@ func Agent(ctx context.Context, writer io.Writer, opts AgentOptions) error {
110116
case codersdk.WorkspaceAgentConnected:
111117
return nil
112118
case codersdk.WorkspaceAgentTimeout, codersdk.WorkspaceAgentDisconnected:
113-
showWarning()
119+
showMessage()
114120
}
115121
}
116122
}

0 commit comments

Comments
 (0)