diff options
Diffstat (limited to 'tests/gpgscm/tests.scm')
-rw-r--r-- | tests/gpgscm/tests.scm | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm index c32e2fa5e..58b1430f8 100644 --- a/tests/gpgscm/tests.scm +++ b/tests/gpgscm/tests.scm @@ -183,10 +183,12 @@ (define (in-srcdir what) (canonical-path (string-append (getenv "srcdir") "/" what))) -(define (with-path name) - (let loop ((path (string-split (getenv "GPGSCM_PATH") #\:))) +;; Try to find NAME in PATHS. Returns the full path name on success, +;; or raises an error. +(define (path-expand name paths) + (let loop ((path paths)) (if (null? path) - name + (throw "Could not find" name "in" paths) (let* ((qualified-name (string-append (car path) "/" name)) (file-exists (call-with-input-file qualified-name (lambda (x) #t)))) @@ -194,6 +196,12 @@ qualified-name (loop (cdr path))))))) +;; Expand NAME using the gpgscm load path. Use like this: +;; (load (with-path "library.scm")) +(define (with-path name) + (catch name + (path-expand name (string-split (getenv "GPGSCM_PATH") *pathsep*)))) + (define (basename path) (let ((i (string-index path #\/))) (if (equal? i #f) |