repos / pico

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

pico / shared
Eric Bower · 13 Apr 24

cmd.go

 1package shared
 2
 3import (
 4	"fmt"
 5	"io"
 6	"log/slog"
 7	"os"
 8)
 9
10type CmdSessionLogger struct {
11	Log *slog.Logger
12}
13
14func (c *CmdSessionLogger) Write(out []byte) (int, error) {
15	c.Log.Info(string(out))
16	return 0, nil
17}
18
19func (c *CmdSessionLogger) Exit(code int) error {
20	os.Exit(code)
21	return fmt.Errorf("panic %d", code)
22}
23
24func (c *CmdSessionLogger) Close() error {
25	return fmt.Errorf("closing")
26}
27
28func (c *CmdSessionLogger) Stderr() io.ReadWriter {
29	return nil
30}
31
32type CmdSession interface {
33	Write([]byte) (int, error)
34	Exit(code int) error
35	Close() error
36	Stderr() io.ReadWriter
37}