~ruther/guix-local

f0d971ee1b2f7101e46580ea76374f873dfc9b3f — Lilah Tascheter 3 months ago 26cb836
gnu: home: Add himitsu-secret-service service.

* gnu/home/services/secrets.scm
  (home-himitsu-secret-service-configuration): New configuration.
  (himitsu-secret-service-shepherd-service): New procedure.
  (home-himitsu-secret-service-type): New service.

Change-Id: Ifb05edce06dbe6a24282701c94007a95dcda1313
Signed-off-by: jgart <jgart@dismail.de>
1 files changed, 33 insertions(+), 1 deletions(-)

M gnu/home/services/secrets.scm
M gnu/home/services/secrets.scm => gnu/home/services/secrets.scm +33 -1
@@ 30,7 30,10 @@
            home-himitsu-service-type

            home-himitsu-ssh-configuration
            home-himitsu-ssh-service-type))
            home-himitsu-ssh-service-type

            home-himitsu-secret-service-configuration
            home-himitsu-secret-service-type))

;;
;; himitsu


@@ 187,3 190,32 @@ same has persist.")
                                         (const (list himitsu-ssh)))))
    (default-value (home-himitsu-ssh-configuration))
    (description "Add support for ssh to store keys in Himitsu.")))

;;
;; himitsu-secret-service
;;

(define-configuration home-himitsu-secret-service-configuration
  (package (file-like himitsu-secret-service) "himitsu-secret-service package to
use." empty-serializer)
  (prefix himitsu-))

(define (himitsu-secret-service-shepherd-service config)
  (let* ((package (home-himitsu-secret-service-configuration-package config))
         (binary (file-append package "/bin/hisecrets-agent")))
    (list (shepherd-service
            (documentation "Start the Himitsu secret-service implementation.")
            (provision '(himitsu-secret-service secret-service))
            (requirement '(himitsud dbus))
            (start #~(make-forkexec-constructor (list #$binary)))
            (stop #~(make-kill-destructor))))))

(define home-himitsu-secret-service-type
  (service-type
    (name 'himitsu-secret-service)
    (extensions
      (list (service-extension home-shepherd-service-type
                               himitsu-secret-service-shepherd-service)))
    (default-value (home-himitsu-secret-service-configuration))
    (description "Add support to Himitsu for the freedesktop.org
secret-service protocol.")))