diff --git a/modules/ordo/handler.scm b/modules/ordo/handler.scm index d156d6c..14ee08a 100644 --- a/modules/ordo/handler.scm +++ b/modules/ordo/handler.scm @@ -16,11 +16,19 @@ (description handler-description) (action handler-action)) -(define* (handler description action) +(define* (handler% description action) (make-handler description action)) -(define (run-handler conn ctx handler) - (match handler +(define-syntax handler + (syntax-rules () + ((_ description (action arg ...)) + (handler% + description + (lambda (ctx) + (action (resolve-context-refs ctx arg) ...)))))) + +(define (run-handler conn ctx h) + (match h (($ description action) (format #t "RUNNING HANDLER ~a~%" description) - (action conn ctx)))) + ((action ctx) conn)))) diff --git a/modules/ordo/task.scm b/modules/ordo/task.scm index ee1b100..b2a48ba 100644 --- a/modules/ordo/task.scm +++ b/modules/ordo/task.scm @@ -36,7 +36,6 @@ (match t (($ description action register triggers) (format #t "RUNNING TASK ~a~%" description) - (pk 'action action) (let ((result ((action ctx) conn))) (when register (register-context-var! ctx register result))