repos / pico

pico services - prose.sh, pastes.sh, imgs.sh, feeds.sh, pgs.sh
git clone https://github.com/picosh/pico.git

pico / wish
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}