GNU bug report logs - #53676
[PATCH 0/5] *** PulseAudio service improvements ***

Previous Next

Package: guix-patches;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Tue, 1 Feb 2022 04:15:02 UTC

Severity: normal

Tags: patch

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #115 received at 53676 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 53676 <at> debbugs.gnu.org
Subject: Re: [PATCH 4/5] services: pulseaudio: Add an extra-script-files
 configuration field.
Date: Thu, 24 Feb 2022 11:25:03 -0500
Hi Liliana,

Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:

[...]

> Note that file-like->name serves multiple duties here.  In my opinion
> it'd be better to
>
> (define (file-like-name file)
>   ((match file
>      ((? local-file?) local-file-name)
>      ((? plain-file?) plain-file-name)
>      ((? computed-file?) computed-file-name)
>      [...]
>      (_ (const #f))) ; alternatively raise an error
>    file))
>
> That at least decouples it from the burden of having to check whether
> it is a valid pulseaudio script file name, which makes it reusable
> elsewhere.

I've modified it like so:

--8<---------------cut here---------------start------------->8---
modified   gnu/services/sound.scm
@@ -154,21 +154,24 @@ (define (extra-script-files->file-union extra-script-files)
   "Return a G-exp obtained by processing EXTRA-SCRIPT-FILES with FILE-UNION."

   (define (file-like->name file)
-    (let ((name (match file
-                  ((? local-file?)
-                   (local-file-name file))
-                  ((? plain-file?)
-                   (plain-file-name file))
-                  ((? computed-file?)
-                   (computed-file-name file))
-                  (_ (leave (G_ "~a is not a local-file, plain-file or \
-computed-file object~%") file)))))
-      (unless (string-suffix? ".pa" name)
-        (leave (G_ "`~a' lacks the required `.pa' file name extension~%")
-               name))
-      name))
-
-  (let ((labels (map file-like->name extra-script-files)))
+    (match file
+      ((? local-file?)
+       (local-file-name file))
+      ((? plain-file?)
+       (plain-file-name file))
+      ((? computed-file?)
+       (computed-file-name file))
+      (_ (leave (G_ "~a is not a local-file, plain-file or \
+computed-file object~%") file))))
+
+  (define (assert-pulseaudio-script-file-name name)
+    (unless (string-suffix? ".pa" name)
+      (leave (G_ "`~a' lacks the required `.pa' file name extension~%") name))
+    name)
+
+  (let ((labels (map (compose assert-pulseaudio-script-file-name)
+                              file-like->name
+                     extra-script-files)))
     (file-union "default.pa.d" (zip labels extra-script-files))))
--8<---------------cut here---------------end--------------->8---

Thanks for the suggestion.

I'll be sending a v2 series soon.

Maxim




This bug report was last modified 3 years and 144 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.