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>
This commit is contained in:
Lilah Tascheter 2025-11-03 17:19:19 -06:00 committed by jgart
parent 26cb836c4e
commit f0d971ee1b
No known key found for this signature in database
GPG key ID: A52AA2B477B6DD35

View file

@ -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.")))