Eric Bower
·
29 Nov 24
mdw.go
1package wish
2
3import (
4 "fmt"
5
6 "github.com/charmbracelet/ssh"
7 "github.com/charmbracelet/wish"
8 bm "github.com/charmbracelet/wish/bubbletea"
9 "github.com/picosh/pico/tui/common"
10)
11
12func SessionMessage(sesh ssh.Session, msg string) {
13 _, _ = sesh.Write([]byte(msg + "\r\n"))
14}
15
16func DeprecatedNotice() wish.Middleware {
17 return func(next ssh.Handler) ssh.Handler {
18 return func(sesh ssh.Session) {
19 renderer := bm.MakeRenderer(sesh)
20 styles := common.DefaultStyles(renderer)
21
22 msg := fmt.Sprintf(
23 "%s\n\nRun %s to access pico's TUI",
24 styles.Logo.Render("DEPRECATED"),
25 styles.Code.Render("ssh pico.sh"),
26 )
27 SessionMessage(sesh, styles.RoundedBorder.Render(msg))
28 next(sesh)
29 }
30 }
31}
32
33func PtyMdw(mdw wish.Middleware) wish.Middleware {
34 return func(next ssh.Handler) ssh.Handler {
35 return func(sesh ssh.Session) {
36 _, _, ok := sesh.Pty()
37 if !ok {
38 next(sesh)
39 return
40 }
41 mdw(next)(sesh)
42 }
43 }
44}