services/dkim-key: fix sed invocation and ignore missing file
This commit is contained in:
parent
f5b0046658
commit
d156ec60de
1 changed files with 5 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
|||
(define-module (services dkim-key)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
|
@ -28,17 +29,18 @@
|
|||
(public (string-append #$domain "-" #$selector ".pub")))
|
||||
(with-directory-excursion #$directory
|
||||
(unless (file-exists? private)
|
||||
(let ((openssl #$(file-append openssl "/bin/openssl")))
|
||||
(let ((openssl #$(file-append openssl "/bin/openssl"))
|
||||
(sed #$(file-append sed "/bin/sed")))
|
||||
(system* openssl "genrsa" "-out" private (number->string #$key-length))
|
||||
(chown private (passwd:uid (getpwnam #$owner)) -1)
|
||||
(system* openssl "rsa" "-in" private "-pubout" "-out" public)
|
||||
(system* "sed" "-i"
|
||||
(system* sed "-i"
|
||||
"1s/.*/v=DKIM1;p=/;:nl;${s/-----.*//;q;};N;s/\\n//g;b nl;"
|
||||
public)))
|
||||
(display (format #f "Create a TXT record at ~a._domainkey.~a with the contents of ~a/~a~%"
|
||||
#$selector #$domain #$directory public)))
|
||||
(unless (equal? (false-if-exception (readlink key-file)) private)
|
||||
(delete-file key-file)
|
||||
(false-if-exception (delete-file key-file))
|
||||
(symlink private key-file))))))
|
||||
|
||||
(define dkim-key-service-type
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue