(define-module (webid-oidc parameters) #:use-module (srfi srfi-19) #:use-module (webid-oidc jti) #:export (data-home cache-home current-date)) (define data-home (make-parameter (format #f "~a/disfluid" (or (getenv "XDG_DATA_HOME") (format #f "~a/.local/share" (getenv "HOME")))))) (define cache-home (make-parameter (format #f "~a/disfluid" (or (getenv "XDG_CACHE_HOME") (format #f "~a/.cache" (getenv "HOME")))))) (define current-date ;; This parameter is a thunk! (make-parameter (lambda () (time-utc->date (current-time))) (lambda (thunk) (lambda () (let ((date (if (thunk? thunk) (thunk) thunk))) (when (integer? date) (set! date (make-time time-utc 0 date))) (when (time? date) (set! date (time-utc->date date))) date)))))