dynamo-browse/internal/common/ui/commandctrl/cmdpacks/modpb.go
Leon Mika 32ae488066
All checks were successful
ci / build (push) Successful in 3m17s
Moved package to lmika.dev/cmd/dynamo-browse
2025-05-26 22:04:23 +10:00

47 lines
894 B
Go

package cmdpacks
import (
"context"
"lmika.dev/cmd/dynamo-browse/internal/dynamo-browse/services"
"ucl.lmika.dev/ucl"
)
type pbModule struct {
pasteboardProvider services.PasteboardProvider
}
func (m pbModule) pbGet(ctx context.Context, args ucl.CallArgs) (any, error) {
s, ok := m.pasteboardProvider.ReadText()
if !ok {
return "", nil
}
return s, nil
}
func (m pbModule) pbPut(ctx context.Context, args ucl.CallArgs) (any, error) {
var s string
if err := args.Bind(&s); err != nil {
return nil, err
}
if err := m.pasteboardProvider.WriteText([]byte(s)); err != nil {
return nil, err
}
return s, nil
}
func modulePB(
pasteboardProvider services.PasteboardProvider,
) ucl.Module {
m := &pbModule{
pasteboardProvider: pasteboardProvider,
}
return ucl.Module{
Name: "pb",
Builtins: map[string]ucl.BuiltinHandler{
"get": m.pbGet,
"put": m.pbPut,
},
}
}