From af16ee29b674691a3a32620467a959710d56ebed Mon Sep 17 00:00:00 2001 From: Ray Miller Date: Mon, 6 Jan 2025 22:08:33 +0000 Subject: [PATCH] Test vars and overrides --- modules/ordo/action/filesystem.scm | 2 ++ modules/ordo/context.scm | 1 + tryme.scm | 31 ++++++++++++------------------ 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/modules/ordo/action/filesystem.scm b/modules/ordo/action/filesystem.scm index bc10cc6..d731d24 100644 --- a/modules/ordo/action/filesystem.scm +++ b/modules/ordo/action/filesystem.scm @@ -19,6 +19,7 @@ (define* (install-directory path #:key owner group mode) (lambda (conn) + (format #t "install-directory ~a~%" path) (connection-must conn "install" (chain-when '("--directory") (owner (append _ `("--owner" ,owner))) @@ -45,6 +46,7 @@ (when (not (= 1 (length (filter identity (list content local-src remote-src))))) (error "exactly one of #:content, #:local-src, or #:remote-src is required")) (lambda (conn) + (format #t "install-file ~a~%" path) (let ((remote-src (cond (remote-src remote-src) (local-src (call-with-input-file local-src (upload-tmp-file conn))) diff --git a/modules/ordo/context.scm b/modules/ordo/context.scm index 3172394..92c66df 100644 --- a/modules/ordo/context.scm +++ b/modules/ordo/context.scm @@ -21,6 +21,7 @@ (define* (context #:key scratch-dir init-vars) (make-context scratch-dir init-vars)) +;; TODO: (resolve-content-refs ctx (lambda (x) x)) fails (define-syntax resolve-context-refs (syntax-rules ($) ((_ ctx ($ x)) diff --git a/tryme.scm b/tryme.scm index 316bcf7..d899983 100644 --- a/tryme.scm +++ b/tryme.scm @@ -1,38 +1,31 @@ (use-modules + (ice-9 filesystem) (ordo connection) (ordo action filesystem) (ordo play) (ordo task) (ordo handler)) -;; TODO: Consider how vars might be used in task args Currently a task argument -;; can be a context refrence, for example we could write: -;; -;; (install-directory (context-ref 'base-dir)) -;; -;; but there's no way to nest these, so we this will not work: -;; -;; (install-file (file-name-join (context-ref 'base-dir) "foo")) -;; -;; Maybe we could implement something like: -;; -;; (install-file (context-fn (file-name-join (context-ref 'base-dir) "foo"))) -;; -;; where context-fn is some syntax that returns (lambda (ctx) ...) - (define test-play (play "Test play" #:connection (local-connection) + #:vars '((base-dir . "/home/ray/ordo-test")) #:tasks (list + (task "Override base dir" + (const "/home/ray/ordo-test-again") + #:register 'base-dir) (task "Create test directory" - (install-directory "/home/ray/ordo-test")) + (install-directory ($ 'base-dir))) (task "Create test file from string content" - (install-file "/home/ray/ordo-test/foo" #:content "Hello, world!\n")) + (install-file (file-name-join* ($ 'base-dir) "foo") + #:content "Hello, world!\n")) (task "Create test file from local source" - (install-file "/home/ray/ordo-test/bar" #:local-src "/home/ray/ordo-test/foo") + (install-file (file-name-join* ($ 'base-dir) "bar") + #:local-src (file-name-join* ($ 'base-dir) "foo")) #:triggers '(fritz)) (task "Create test file from remote source" - (install-file "/home/ray/ordo-test/baz" #:remote-src "/home/ray/ordo-test/bar") + (install-file (file-name-join* ($ 'base-dir) "baz") + #:remote-src (file-name-join* ($ 'base-dir) "bar")) #:triggers '(frobnicate))) #:handlers `((frobnicate . ,(handler "Frobnicate" (const #t))) (fritz . ,(handler "Fritz" (const #t)))