summaryrefslogtreecommitdiff
path: root/suweren/trezor.scm
blob: d0227a9f9157a7428f134799783567cc4f69fc5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
(define-module (suweren trezor)
  #:use-module (gnu packages finance)
  #:use-module (gnu services)
  #:use-module (gnu services base)
  #:use-module (gnu services shepherd)
  #:use-module (guix gexp))

(define-public trezor-bridge
  (let* ((service-executable (file-append trezord
					  "/bin/trezord-go"))

	 (start-command #~ (list #$ service-executable))

	 (shepherd-symbols (list 'trezor-bridge))
	 (start-process #~ (make-forkexec-constructor #$ start-command))
	 (stop-process #~ (make-kill-destructor))

	 (profile-extension (list trezord))
	 (shepherd-extension (shepherd-service (provision shepherd-symbols)
					       (start start-process)
					       (stop stop-process)))

	 (shepherd-extension* (list shepherd-extension))

	 (profile-service (simple-service 'trezor-bridge-profile
					  profile-service-type
					  profile-extension))
	 (shepherd-service* (simple-service 'trezor-bridge-shepherd
					   shepherd-root-service-type
					   shepherd-extension*))
	 (udev-service* (udev-rules-service 'trezor-bridge-udev
					   trezord-udev-rules)))
    (list profile-service
	  udev-service*
	  shepherd-service*)))