services: Add 'session-environment-service'.
* gnu/services/base.scm (session-environment-service): New procedure. (session-environment-service-type): New variable. (environment-variables->environment-file): New procedure.
This commit is contained in:
parent
2aacd9179c
commit
e10964efd2
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -48,6 +49,8 @@
|
||||
device-mapping-service
|
||||
swap-service
|
||||
user-processes-service
|
||||
session-environment-service
|
||||
session-environment-service-type
|
||||
host-name-service
|
||||
console-keymap-service
|
||||
console-font-service
|
||||
@ -366,6 +369,39 @@ stopped before 'kill' is called."
|
||||
(service user-processes-service-type
|
||||
(list file-systems grace-delay)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; System-wide environment variables.
|
||||
;;;
|
||||
|
||||
(define (environment-variables->environment-file vars)
|
||||
"Return a file for pam_env(8) that contains environment variables VARS."
|
||||
(apply mixed-text-file "environment"
|
||||
(append-map (match-lambda
|
||||
((key . value)
|
||||
(list key "=" value "\n")))
|
||||
vars)))
|
||||
|
||||
(define session-environment-service-type
|
||||
(service-type
|
||||
(name 'session-environment)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
etc-service-type
|
||||
(lambda (vars)
|
||||
(list `("environment"
|
||||
,(environment-variables->environment-file vars)))))))
|
||||
(compose concatenate)
|
||||
(extend append)))
|
||||
|
||||
(define (session-environment-service vars)
|
||||
"Return a service that builds the @file{/etc/environment}, which can be read
|
||||
by PAM-aware applications to set environment variables for sessions.
|
||||
|
||||
VARS should be an association list in which both the keys and the values are
|
||||
strings or string-valued gexps."
|
||||
(service session-environment-service-type vars))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Console & co.
|
||||
|
Loading…
Reference in New Issue
Block a user