~ruther/guix-local

ded1012f3c9f5d5e60481274c5b3280acc277b34 — Ludovic Courtès 12 years ago 7864504
pki: Introduce 'write-acl', and fix wrong conversion in 'ensure-acl'.

* guix/pki.scm (write-acl): New procedure.
  (ensure-acl): Use it.  Fixes a regression introduced in 39831f1,
  whereby 'ensure-acl' would yield a wrong-type-arg error.
* guix/scripts/archive.scm (authorize-key): Use 'write-acl'.
2 files changed, 9 insertions(+), 6 deletions(-)

M guix/pki.scm
M guix/scripts/archive.scm
M guix/pki.scm => guix/pki.scm +8 -3
@@ 30,6 30,7 @@
            public-keys->acl
            acl->public-keys
            authorized-key?
            write-acl

            signature-sexp
            signature-subject


@@ 83,9 84,13 @@ element in KEYS must be a canonical sexp with type 'public-key'."
        (mkdir-p (dirname %acl-file))
        (with-atomic-file-output %acl-file
          (lambda (port)
            (display (canonical-sexp->string
                      (public-keys->acl (list public-key)))
                     port)))))))
            (write-acl (public-keys->acl (list public-key))
                       port)))))))

(define (write-acl acl port)
  "Write ACL to PORT in canonical-sexp format."
  (let ((sexp (sexp->canonical-sexp acl)))
    (display (canonical-sexp->string sexp) port)))

(define (current-acl)
  "Return the current ACL."

M guix/scripts/archive.scm => guix/scripts/archive.scm +1 -3
@@ 288,9 288,7 @@ the input port."
    (let ((acl (public-keys->acl (cons key (acl->public-keys acl)))))
      (mkdir-p (dirname %acl-file))
      (with-atomic-file-output %acl-file
        (lambda (port)
          (display (canonical-sexp->string (sexp->canonical-sexp acl))
                   port))))))
        (cut write-acl acl <>)))))

(define (guix-archive . args)
  (define (parse-options)