summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/parameters.scm
blob: 3b24361dfcdd4323d5b7d4f1a6f0fa0b1d735c84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(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)))))