services: Add 'lirc-service'.
* gnu/services/lirc.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Various Services): New node. Document 'lirc-service'.
This commit is contained in:
		
							parent
							
								
									e768277168
								
							
						
					
					
						commit
						aa4ed92314
					
				
					 3 changed files with 90 additions and 0 deletions
				
			
		| 
						 | 
					@ -154,6 +154,7 @@ Services
 | 
				
			||||||
* Base Services::               Essential system services.
 | 
					* Base Services::               Essential system services.
 | 
				
			||||||
* Networking Services::         Network setup, SSH daemon, etc.
 | 
					* Networking Services::         Network setup, SSH daemon, etc.
 | 
				
			||||||
* X Window::                    Graphical display.
 | 
					* X Window::                    Graphical display.
 | 
				
			||||||
 | 
					* Various Services::            Other services.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Packaging Guidelines
 | 
					Packaging Guidelines
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4350,6 +4351,7 @@ declaration.
 | 
				
			||||||
* Base Services::               Essential system services.
 | 
					* Base Services::               Essential system services.
 | 
				
			||||||
* Networking Services::         Network setup, SSH daemon, etc.
 | 
					* Networking Services::         Network setup, SSH daemon, etc.
 | 
				
			||||||
* X Window::                    Graphical display.
 | 
					* X Window::                    Graphical display.
 | 
				
			||||||
 | 
					* Various Services::            Other services.
 | 
				
			||||||
@end menu
 | 
					@end menu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Base Services
 | 
					@node Base Services
 | 
				
			||||||
| 
						 | 
					@ -4686,6 +4688,25 @@ appropriate screen resolution; otherwise, it must be a list of
 | 
				
			||||||
resolutions---e.g., @code{((1024 768) (640 480))}.
 | 
					resolutions---e.g., @code{((1024 768) (640 480))}.
 | 
				
			||||||
@end deffn
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@node Various Services
 | 
				
			||||||
 | 
					@subsubsection Various Services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @code{(gnu services lirc)} module provides the following service.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deffn {Monadic Procedure} lirc-service [#:lirc lirc] @
 | 
				
			||||||
 | 
					       [#:device #f] [#:driver #f] [#:config-file #f] @
 | 
				
			||||||
 | 
					       [#:extra-options '()]
 | 
				
			||||||
 | 
					Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that
 | 
				
			||||||
 | 
					decodes infrared signals from remote controls.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Optionally, @var{device}, @var{driver} and @var{config-file}
 | 
				
			||||||
 | 
					(configuration file name) may be specified.  See @command{lircd} manual
 | 
				
			||||||
 | 
					for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, @var{extra-options} is a list of additional command-line options
 | 
				
			||||||
 | 
					passed to @command{lircd}.
 | 
				
			||||||
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Setuid Programs
 | 
					@node Setuid Programs
 | 
				
			||||||
@subsection Setuid Programs
 | 
					@subsection Setuid Programs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -325,6 +325,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  gnu/services/base.scm				\
 | 
					  gnu/services/base.scm				\
 | 
				
			||||||
  gnu/services/dbus.scm				\
 | 
					  gnu/services/dbus.scm				\
 | 
				
			||||||
  gnu/services/dmd.scm				\
 | 
					  gnu/services/dmd.scm				\
 | 
				
			||||||
 | 
					  gnu/services/lirc.scm				\
 | 
				
			||||||
  gnu/services/networking.scm			\
 | 
					  gnu/services/networking.scm			\
 | 
				
			||||||
  gnu/services/ssh.scm				\
 | 
					  gnu/services/ssh.scm				\
 | 
				
			||||||
  gnu/services/xorg.scm				\
 | 
					  gnu/services/xorg.scm				\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										68
									
								
								gnu/services/lirc.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								gnu/services/lirc.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,68 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
				
			||||||
 | 
					;;; under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
				
			||||||
 | 
					;;; your option) any later version.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					;;; GNU General Public License for more details.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-module (gnu services lirc)
 | 
				
			||||||
 | 
					  #:use-module (gnu services)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages lirc)
 | 
				
			||||||
 | 
					  #:use-module (guix monads)
 | 
				
			||||||
 | 
					  #:use-module (guix store)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
 | 
					  #:export (lirc-service))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; LIRC services.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (lirc-service #:key (lirc lirc)
 | 
				
			||||||
 | 
					                       device driver config-file
 | 
				
			||||||
 | 
					                       (extra-options '()))
 | 
				
			||||||
 | 
					  "Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that
 | 
				
			||||||
 | 
					decodes infrared signals from remote controls.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The daemon will use specified @var{device}, @var{driver} and
 | 
				
			||||||
 | 
					@var{config-file} (configuration file name).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, @var{extra-options} is a list of additional command-line options
 | 
				
			||||||
 | 
					passed to @command{lircd}."
 | 
				
			||||||
 | 
					  (with-monad %store-monad
 | 
				
			||||||
 | 
					    (return
 | 
				
			||||||
 | 
					     (service
 | 
				
			||||||
 | 
					      (provision '(lircd))
 | 
				
			||||||
 | 
					      (documentation "Run the LIRC daemon.")
 | 
				
			||||||
 | 
					      (requirement '(user-processes))
 | 
				
			||||||
 | 
					      (start #~(make-forkexec-constructor
 | 
				
			||||||
 | 
					                (list (string-append #$lirc "/sbin/lircd")
 | 
				
			||||||
 | 
					                      "--nodaemon"
 | 
				
			||||||
 | 
					                      #$@(if device
 | 
				
			||||||
 | 
					                             #~("--device" #$device)
 | 
				
			||||||
 | 
					                             #~())
 | 
				
			||||||
 | 
					                      #$@(if driver
 | 
				
			||||||
 | 
					                             #~("--driver" #$driver)
 | 
				
			||||||
 | 
					                             #~())
 | 
				
			||||||
 | 
					                      #$@(if config-file
 | 
				
			||||||
 | 
					                             #~(#$config-file)
 | 
				
			||||||
 | 
					                             #~())
 | 
				
			||||||
 | 
					                      #$@extra-options)))
 | 
				
			||||||
 | 
					      (stop #~(make-kill-destructor))
 | 
				
			||||||
 | 
					      (activate #~(begin
 | 
				
			||||||
 | 
					                    (use-modules (guix build utils))
 | 
				
			||||||
 | 
					                    (mkdir-p "/var/run/lirc")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; lirc.scm ends here
 | 
				
			||||||
		Reference in a new issue