From e028886fd03b162c21790cf158aec892f47b9523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 11 May 2022 20:49:11 +0200 Subject: Add procedure with-working-directory. --- module/hnh/util/env.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'module/hnh/util') diff --git a/module/hnh/util/env.scm b/module/hnh/util/env.scm index a6877186..ca0e5ea8 100644 --- a/module/hnh/util/env.scm +++ b/module/hnh/util/env.scm @@ -1,5 +1,5 @@ (define-module (hnh util env) - :export (let-env)) + :export (let-env with-working-directory)) (define-syntax let-env (syntax-rules () @@ -22,4 +22,12 @@ env-pairs))))])) +(define-syntax-rule (with-working-directory directory thunk) + (let ((old-cwd #f)) + (dynamic-wind + (lambda () + (set! old-cwd (getcwd)) + (chdir directory)) + thunk + (lambda () (chdir old-cwd))))) -- cgit v1.2.3