diff mbox series

[bug#37750] inputattach: Add baud rate option

Message ID 87d0ezb5g1.fsf@yahoo.de
State Accepted
Headers show
Series [bug#37750] inputattach: Add baud rate option | expand

Commit Message

ashish.is--- via Guix-patches" via Oct. 14, 2019, 5:30 p.m. UTC
Hi Guix,

The attached patch adds a baud-rate option to the inputattach-service
which is needed for some devices.
It would be nice if someone could review and commit if the patch is
fine.

Tim.
diff mbox series

Patch

From 29bf34ead05c47a1d045dd60185c803dd6af204a Mon Sep 17 00:00:00 2001
From: Tim Gesthuizen <tim.gesthuizen@yahoo.de>
Date: Thu, 10 Oct 2019 18:38:36 +0200
Subject: [PATCH] gnu: Add baud-rate parameter to inputattach-service

* gnu/services/desktop.scm (inputattach-configuration): Add baud-rate field.
  (inputattach-shepherd-service): Add baud-rate to parameters when specified.
---
 gnu/services/desktop.scm | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index a32756e040..35320bdde2 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1021,23 +1021,31 @@  as expected.")))
                (default "wacom"))
   (device inputattach-configuration-device
           (default "/dev/ttyS0"))
+  (baud-rate inputattach-configuration-baud-rate
+             (default #f))
   (log-file inputattach-configuration-log-file
             (default #f)))
 
 (define inputattach-shepherd-service
   (match-lambda
-    (($ <inputattach-configuration> type device log-file)
-     (list (shepherd-service
-            (provision '(inputattach))
-            (requirement '(udev))
-            (documentation "inputattach daemon")
-            (start #~(make-forkexec-constructor
-                      (list (string-append #$inputattach
-                                           "/bin/inputattach")
-                            (string-append "--" #$type)
-                            #$device)
-                      #:log-file #$log-file))
-            (stop #~(make-kill-destructor)))))))
+    (($ <inputattach-configuration> type device baud-rate log-file)
+     (let ((args (append (if baud-rate
+                             (if (number? baud-rate)
+                                 (list "--baud-rate" (number->string baud-rate))
+                                 (error "Expected baud-rate to be a number or #f" baud-rate))
+                             '())
+                         (list (string-append "--" type)
+                               device))))
+       (list (shepherd-service
+              (provision '(inputattach))
+              (requirement '(udev))
+              (documentation "inputattach daemon")
+              (start #~(make-forkexec-constructor
+                        (cons (string-append #$inputattach
+                                             "/bin/inputattach")
+                              (quote #$args))
+                        #:log-file #$log-file))
+              (stop #~(make-kill-destructor))))))))
 
 (define inputattach-service-type
   (service-type
-- 
2.23.0