From 821658d0eb52f4ddf9d65d23bb4152668ff2cd48 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 4 Aug 2022 17:03:10 -0700 Subject: add FILE:CONTAINS-CONF-UNSPACED Signed-off-by: Sean Whitton --- src/package.lisp | 1 + src/property/file.lisp | 13 +++++++++++++ 2 files changed, 14 insertions(+) (limited to 'src') diff --git a/src/package.lisp b/src/package.lisp index e6f0362..4b51b70 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -436,6 +436,7 @@ #:host-secret-uploaded #:data-cache-purged #:contains-conf-equals + #:contains-conf-unspaced #:contains-conf-space #:contains-conf-tab #:contains-conf-shell diff --git a/src/property/file.lisp b/src/property/file.lisp index 4c09f6e..5f0f480 100644 --- a/src/property/file.lisp +++ b/src/property/file.lisp @@ -426,6 +426,19 @@ uncommented and used to set the value, if it exists." :parse-kv #?/^([^\s=]+)\s?=\s?(.*)/ :new-kv (lambda (k v) #?"${k} = ${v}")))) +(defprop contains-conf-unspaced :posix (file &rest pairs) + "Where FILE is a config file in which keys and values are separated by \"=\", +without spaces, there are no sections, and PAIRS is a list of even length of +alternating keys and values, set each of these keys and values in FILE. + +If there are any other lines which set values for the same keys, they will be +commented out; the first commented or uncommented line for each key will be +uncommented and used to set the value, if it exists." + (:desc (format nil "~A has ~{~A=~A~^, ~}" file pairs)) + (:apply (simple-conf-update file pairs + :parse-kv #?/^([^\s=]+)=(.*)/ + :new-kv (lambda (k v) #?"${k}=${v}")))) + (defprop contains-conf-shell :posix (file &rest pairs) "Where FILE is a shell config file, like those in /etc/default, and PAIRS is a list of even length of alternating keys and values, set each of these keys and -- cgit v1.2.3