package cmdpacks import ( "context" "github.com/lmika/dynamo-browse/internal/dynamo-browse/providers/pasteboardprovider" "ucl.lmika.dev/ucl" ) type pbModule struct { pasteboardProvider *pasteboardprovider.Provider } 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 *pasteboardprovider.Provider, ) ucl.Module { m := &pbModule{ pasteboardProvider: pasteboardProvider, } return ucl.Module{ Name: "pb", Builtins: map[string]ucl.BuiltinHandler{ "get": m.pbGet, "put": m.pbPut, }, } }