From c8a2ce5015728920495bf8719b7a0c16904b0c36 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Thu, 18 Jan 2024 18:43:59 -0500 Subject: temp changes --- modules/ryan-config/utils.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 modules/ryan-config/utils.scm (limited to 'modules') diff --git a/modules/ryan-config/utils.scm b/modules/ryan-config/utils.scm new file mode 100644 index 0000000..e889e69 --- /dev/null +++ b/modules/ryan-config/utils.scm @@ -0,0 +1,33 @@ +(define-module (ryan-config utils) + #:use-module (gnu packages) + #:use-module (gnu services) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (gnu packages freedesktop) + #:use-module (gnu services configuration) + #:use-module (guix gexp) + #:use-module (ice-9 regex) + #:use-module (ice-9 pretty-print) + #:use-module (ice-9 textual-ports) + + #:export (gather-manifest-packages + apply-template-file)) + +(define (apply-template template-string value-alist) + (regexp-substitute/global #f + "\\$\\{([A-Za-z/\\-]+)\\}" + template-string + 'pre + (lambda (m) + (let ((entry (assq (string->symbol (match:substring m 1)) + value-alist))) + (if entry + (cdr entry) + "VALUE NOT FOUND"))) + 'post)) + +(define (apply-template-file file-path value-alist) + (call-with-input-file file-path + (lambda (port) + (apply-template (get-string-all port) + value-alist)))) -- cgit v1.2.3