From c4479afbd1159b921e1b9c3155e992e32806b712 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Sat, 28 Nov 2020 09:51:15 +0100 Subject: Use a web cache on the file system --- src/scm/webid-oidc/stubs.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/scm/webid-oidc/stubs.scm') 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)) -- cgit v1.2.3