aboutsummaryrefslogtreecommitdiff
path: root/module/hnh/util/path.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/hnh/util/path.scm')
-rw-r--r--module/hnh/util/path.scm15
1 files changed, 15 insertions, 0 deletions
diff --git a/module/hnh/util/path.scm b/module/hnh/util/path.scm
index 49b53897..7eac630b 100644
--- a/module/hnh/util/path.scm
+++ b/module/hnh/util/path.scm
@@ -60,3 +60,18 @@
(define-public (filename-extension filename)
(car (reverse (string-split filename #\.))))
+
+
+(define-public (realpath filename)
+ (unless (string? filename)
+ (scm-error 'wrong-type-arg "realpath"
+ "filename not a string: ~a"
+ (list filename) #f))
+ (when (string-null? filename)
+ (scm-error 'wrong-type-arg "realpath"
+ "filename can't be empty"
+ #f #f))
+
+ (if (absolute-file-name? filename)
+ filename
+ (path-append (getcwd) filename)))