diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-08-01 14:51:28 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-08-01 18:08:56 +0200 |
commit | bae1843f1a1d644fb3bd4f8c40b1dbb900aa3325 (patch) | |
tree | 00f590033af904a6a493e41bdebe9b3ddd73043b /src/scm/webid-oidc/parameters.scm | |
parent | d8c2ca930673da858d63f2dea9526c259a2dd936 (diff) |
Use guile parameters
With parameters, the API does not need to care about the directory
where to load files and how to get the time.
Diffstat (limited to 'src/scm/webid-oidc/parameters.scm')
-rw-r--r-- | src/scm/webid-oidc/parameters.scm | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/parameters.scm b/src/scm/webid-oidc/parameters.scm new file mode 100644 index 0000000..3b24361 --- /dev/null +++ b/src/scm/webid-oidc/parameters.scm @@ -0,0 +1,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))))) |