diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-09-16 11:11:06 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-09-16 12:02:24 -0400 |
commit | 106660e3ff4f111bc9779193376a53beee4585b5 (patch) | |
tree | 27c6b6d3e181f961edae750e10a91ae5840f0a1e /gnu/services | |
parent | 3ba8c2b5076cff874f12e2880632ec5e5507acff (diff) |
services: elogind-configuration-file: Do not serialize unspecified items.
This a followup to 59ee837d8b11d7d688045b601e8b240ccbdbe7c7, which changed the
default value of the HandleLidSwitchExternalPower to the empty string.
Unfortunately this causes elogind to print a warning (although it otherwise
works as intended). This change fixes that.
* gnu/services/desktop.scm (elogind-configuration-file)<handle-action>: Let
the unspecified value go through.
<ini-file-clause>: When an unspecified file is encountered, do not produce any
text to serialize.
Diffstat (limited to 'gnu/services')
-rw-r--r-- | gnu/services/desktop.scm | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 07e7500847..9b3eb12613 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -1034,7 +1034,7 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." '(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock)) (define (handle-action x) (if (unspecified? x) - "" ;empty serializer + x ;let the unspecified value go through (enum x handle-actions))) (define (sleep-list tokens) (unless (valid-list? tokens char-set:user-name) @@ -1042,10 +1042,18 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." (string-join tokens " ")) (define-syntax ini-file-clause (syntax-rules () + ;; Produce an empty line when encountering an unspecified value. This + ;; is better than an empty string value, which can, in some cases, cause + ;; warnings such as "Failed to parse handle action setting". ((_ config (prop (parser getter))) - (string-append prop "=" (parser (getter config)) "\n")) + (let ((value (parser (getter config)))) + (if (unspecified? value) + "" + (string-append prop "=" value "\n")))) ((_ config str) - (string-append str "\n")))) + (if (unspecified? str) + "" + (string-append str "\n"))))) (define-syntax-rule (ini-file config file clause ...) (plain-file file (string-append (ini-file-clause config clause) ...))) (ini-file |