archive: Make sure $sysconfdir/guix exists.

* guix/pki.scm (ensure-acl): Make sure the directory of %ACL-FILE
  exists.
* guix/scripts/archive.scm (generate-key-pair): Likewise for
  %PUBLIC-KEY-FILE.
master
Ludovic Courtès 2014-01-05 23:40:06 +01:00
parent 425b0bfc2e
commit 590e4154b6
2 changed files with 6 additions and 2 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,6 +20,7 @@
#:use-module (guix config) #:use-module (guix config)
#:use-module (guix pk-crypto) #:use-module (guix pk-crypto)
#:use-module ((guix utils) #:select (with-atomic-file-output)) #:use-module ((guix utils) #:select (with-atomic-file-output))
#:use-module ((guix build utils) #:select (mkdir-p))
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:export (%public-key-file #:export (%public-key-file
@ -82,6 +83,7 @@ element in KEYS must be a canonical sexp with type 'public-key'."
(let ((public-key (call-with-input-file %public-key-file (let ((public-key (call-with-input-file %public-key-file
(compose string->canonical-sexp (compose string->canonical-sexp
get-string-all)))) get-string-all))))
(mkdir-p (dirname %acl-file))
(with-atomic-file-output %acl-file (with-atomic-file-output %acl-file
(lambda (port) (lambda (port)
(display (canonical-sexp->string (display (canonical-sexp->string

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -19,6 +19,7 @@
(define-module (guix scripts archive) (define-module (guix scripts archive)
#:use-module (guix config) #:use-module (guix config)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module ((guix build utils) #:select (mkdir-p))
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix derivations) #:use-module (guix derivations)
@ -250,6 +251,7 @@ this may take time...~%"))
;; Create the following files as #o400. ;; Create the following files as #o400.
(umask #o266) (umask #o266)
(mkdir-p (dirname %public-key-file))
(with-atomic-file-output %public-key-file (with-atomic-file-output %public-key-file
(lambda (port) (lambda (port)
(display (canonical-sexp->string public) port))) (display (canonical-sexp->string public) port)))