diff --git a/examples/install-aws-cli.scm b/examples/install-aws-cli.scm index 1e1f273..15ea839 100644 --- a/examples/install-aws-cli.scm +++ b/examples/install-aws-cli.scm @@ -17,13 +17,12 @@ (when update? "-u") #:check? #t))) (lambda () - (run conn "rm" "-rf" tmp-dir #:check? #t))))) + (run conn "rm" "-rf" tmp-dir))))) (playbook "Test Playbook" (play "Test play" #:host "localhost" - (task "Install AWS CLI" - (lambda () - (install-aws-cli #:update? #t - #:install-dir (file-name-join* ($ #:fact.home-dir) ".local" "aws-cli") - #:bin-dir (file-name-join* ($ #:fact.home-dir) ".local" "bin")))))) + (task + (install-aws-cli #:update? #t + #:install-dir (file-name-join* ($ #:fact.home-dir) ".local" "aws-cli") + #:bin-dir (file-name-join* ($ #:fact.home-dir) ".local" "bin"))))) diff --git a/modules/ordo/task.scm b/modules/ordo/task.scm index 8104b16..0b62d8d 100644 --- a/modules/ordo/task.scm +++ b/modules/ordo/task.scm @@ -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)))