diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2020-11-28 09:51:15 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-05-11 00:30:12 +0200 |
commit | c4479afbd1159b921e1b9c3155e992e32806b712 (patch) | |
tree | d13da0e91c6271edee5087032752c14ef288c13b /src/scm/webid-oidc/stubs.scm | |
parent | 814ab9feab59c499d3221971b0524972b0d161a4 (diff) |
Use a web cache on the file system
Diffstat (limited to 'src/scm/webid-oidc/stubs.scm')
-rw-r--r-- | src/scm/webid-oidc/stubs.scm | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/stubs.scm b/src/scm/webid-oidc/stubs.scm index 4ed9000..ee24724 100644 --- a/src/scm/webid-oidc/stubs.scm +++ b/src/scm/webid-oidc/stubs.scm @@ -120,3 +120,23 @@ (define fixed:scm->json scm->json) (export (fixed:scm->json . scm->json)) + +(define (mkdir-p name) + (catch 'system-error + (lambda () + (mkdir name)) + (lambda (key subr message args rest) + (case (car rest) + ((17) ;; file exists + #t) + ((2) ;; parent does not exist + (let ((parent (dirname name))) + (unless (equal? parent name) + (mkdir-p parent)) + (mkdir name))) + (else + (throw key subr message args rest)))))) + +(define-public (call-with-output-file* filename . args) + (mkdir-p (dirname filename)) + (apply call-with-output-file filename args)) |