Add a macro to make task definitions more succinct
This commit is contained in:
parent
7f5ec3ac29
commit
1843544e49
2 changed files with 13 additions and 7 deletions
|
@ -24,9 +24,16 @@
|
|||
(register-playbook-var task-register-playbook-var)
|
||||
(triggers task-triggers))
|
||||
|
||||
(define* (task name action #:key (tags '()) (condition (const #t)) (register-play-var #f) (register-playbook-var #f) (triggers '()))
|
||||
(define* (%task name action #:key (tags '()) (condition (const #t)) (register-play-var #f) (register-playbook-var #f) (triggers '()))
|
||||
(make-task name tags action condition register-play-var register-playbook-var triggers))
|
||||
|
||||
(define-syntax task
|
||||
(syntax-rules ()
|
||||
((task (f args ...) kwargs ...)
|
||||
(%task (symbol->string 'f) (lambda () (f args ...) kwargs ...)))
|
||||
((task name (f args ...) kwargs ...)
|
||||
(%task name (lambda () (f args ...)) kwargs ...))))
|
||||
|
||||
(define (run-task t)
|
||||
(when (check-filter-tags (task-tags t))
|
||||
(if (not ((task-condition t)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue