Skip to content

Commit c5e5f1f

Browse files
committed
fix: logs in hooks
1 parent 837dd0c commit c5e5f1f

File tree

4 files changed

+39
-18
lines changed

4 files changed

+39
-18
lines changed

pkg/cy/client.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,12 @@ func (c *Cy) runHook(client *Client, funcName string) {
136136
ctx, cancel := context.WithTimeout(client.Ctx(), 5*time.Second)
137137
defer cancel()
138138

139-
err := c.ExecuteFunction(ctx, client, funcName)
139+
err := c.ExecuteFunction(
140+
ctx,
141+
client,
142+
janet.Params{Dyns: c.logPipe.Dyns()},
143+
funcName,
144+
)
140145
if err == nil || errors.Is(err, context.Canceled) ||
141146
errors.Is(err, context.DeadlineExceeded) {
142147
return
@@ -403,6 +408,7 @@ func (c *Client) findNewPane() error {
403408
return c.cy.ExecuteFunction(
404409
c.Ctx(),
405410
c,
411+
janet.Params{Dyns: c.cy.logPipe.Dyns()},
406412
"shell/attach",
407413
cwd,
408414
)

pkg/cy/module.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,9 @@ func (c *Cy) pollNodeEvents(ctx context.Context, events <-chan events.Msg) {
370370
err := c.ExecuteFunction(
371371
ctx,
372372
client,
373+
janet.Params{
374+
Dyns: c.logPipe.Dyns(),
375+
},
373376
"register/set",
374377
event.Register,
375378
event.Text,

pkg/janet/exec.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,16 +327,22 @@ func (v *VM) WrapFile(
327327
func (v *VM) ExecuteFunction(
328328
ctx context.Context,
329329
user interface{},
330+
params Params,
330331
funcName string,
331-
params ...interface{},
332+
args ...interface{},
332333
) error {
333334
out, err := v.ExecuteCall(
334335
ctx,
335336
nil,
336-
CallString(fmt.Sprintf(
337-
`(yield %s)`,
338-
funcName,
339-
)),
337+
Call{
338+
Code: []byte(fmt.Sprintf(
339+
`(yield %s)`,
340+
funcName,
341+
)),
342+
Options: CallOptions{
343+
Dyns: params.Dyns,
344+
},
345+
},
340346
)
341347
if err != nil {
342348
return err
@@ -348,7 +354,7 @@ func (v *VM) ExecuteFunction(
348354
return err
349355
}
350356

351-
return fun.Call(ctx, user, Params{}, params...)
357+
return fun.Call(ctx, user, params, args...)
352358
}
353359

354360
func (v *VM) Execute(ctx context.Context, code string) error {

pkg/janet/exec_test.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,39 @@ func TestExecuteFunction(t *testing.T) {
1616
err := vm.Execute(ctx, `(defn test-add [a b] (+ a b))`)
1717
require.NoError(t, err)
1818

19-
err = vm.ExecuteFunction(ctx, nil, "test-add", 2, 3)
19+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-add", 2, 3)
2020
require.NoError(t, err)
2121
})
2222

2323
t.Run("non-existent function", func(t *testing.T) {
24-
err := vm.ExecuteFunction(ctx, nil, "non-existent-function")
24+
err := vm.ExecuteFunction(ctx, nil, Params{}, "non-existent-function")
2525
require.Error(t, err)
2626
})
2727

2828
t.Run("function with different parameter types", func(t *testing.T) {
2929
err := vm.Execute(ctx, `(defn test-params [num str bool]
3030
(print "num:" num "str:" str "bool:" bool))`)
3131
require.NoError(t, err)
32-
err = vm.ExecuteFunction(ctx, nil, "test-params", 42, "hello", true)
32+
err = vm.ExecuteFunction(
33+
ctx, nil, Params{},
34+
"test-params", 42, "hello", true,
35+
)
3336
require.NoError(t, err)
3437
})
3538

3639
t.Run("function with no parameters", func(t *testing.T) {
3740
err := vm.Execute(ctx, `(defn test-no-params [] (print "no params"))`)
3841
require.NoError(t, err)
3942

40-
err = vm.ExecuteFunction(ctx, nil, "test-no-params")
43+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-no-params")
4144
require.NoError(t, err)
4245
})
4346

4447
t.Run("function that errors", func(t *testing.T) {
4548
err := vm.Execute(ctx, `(defn test-error [] (error "test error"))`)
4649
require.NoError(t, err)
4750

48-
err = vm.ExecuteFunction(ctx, nil, "test-error")
51+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-error")
4952
require.Error(t, err)
5053
require.Contains(t, err.Error(), "test error")
5154
})
@@ -63,7 +66,7 @@ func TestExecuteFunction(t *testing.T) {
6366
err = vm.Execute(ctx, `(defn test-with-user [] (test-user-context))`)
6467
require.NoError(t, err)
6568
testUser := "test-user"
66-
err = vm.ExecuteFunction(ctx, testUser, "test-with-user")
69+
err = vm.ExecuteFunction(ctx, testUser, Params{}, "test-with-user")
6770
require.NoError(t, err)
6871
require.Equal(t, testUser, receivedUser)
6972
})
@@ -75,7 +78,7 @@ func TestExecuteFunction(t *testing.T) {
7578
)
7679
require.NoError(t, err)
7780

78-
err = vm.ExecuteFunction(ctx, nil, "test-var-fn")
81+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-var-fn")
7982
require.NoError(t, err)
8083
})
8184

@@ -86,19 +89,22 @@ func TestExecuteFunction(t *testing.T) {
8689
)
8790
require.NoError(t, err)
8891

89-
err = vm.ExecuteFunction(ctx, nil, "test-complex-return")
92+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-complex-return")
9093
require.NoError(t, err)
9194
})
9295

9396
t.Run("built-in function", func(t *testing.T) {
94-
err = vm.ExecuteFunction(ctx, nil, "length", []int{1, 2, 3, 4})
97+
err = vm.ExecuteFunction(
98+
ctx, nil, Params{},
99+
"length", []int{1, 2, 3, 4},
100+
)
95101
require.NoError(t, err)
96102
})
97103

98104
t.Run("wrong parameter count", func(t *testing.T) {
99105
err := vm.Execute(ctx, `(defn test-param-count [a b] (+ a b))`)
100106
require.NoError(t, err)
101-
err = vm.ExecuteFunction(ctx, nil, "test-param-count", 1)
107+
err = vm.ExecuteFunction(ctx, nil, Params{}, "test-param-count", 1)
102108
require.Error(t, err)
103109
})
104110

@@ -109,7 +115,7 @@ func TestExecuteFunction(t *testing.T) {
109115
cancelledCtx, cancel := context.WithCancel(ctx)
110116
cancel()
111117

112-
err = vm.ExecuteFunction(cancelledCtx, nil, "test-slow")
118+
err = vm.ExecuteFunction(cancelledCtx, nil, Params{}, "test-slow")
113119
require.Error(t, err)
114120
require.Contains(t, err.Error(), "context canceled")
115121
})

0 commit comments

Comments
 (0)