diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-06-08 11:50:57 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-06-16 16:10:46 +0200 |
commit | a450b4343bc1e5284c4db6409976eba7bb92df19 (patch) | |
tree | addc867f4f9e371b62932561be7f1d13b16f08d1 | |
parent | 33391ee5c1716b35b9577237e18f5fc347192a3b (diff) | |
download | guix-a450b4343bc1e5284c4db6409976eba7bb92df19.tar.gz |
git-authenticate: Cache takes a key parameter.
* guix/git-authenticate.scm (authenticated-commit-cache-file) (cache-authenticated-commit, previously-authenticated-commits): Add 'key' parameter and honor it. * build-aux/git-authenticate.scm (git-authenticate): Pass "channels/guix" as the key.
-rw-r--r-- | build-aux/git-authenticate.scm | 5 | ||||
-rw-r--r-- | guix/git-authenticate.scm | 24 |
2 files changed, 15 insertions, 14 deletions
diff --git a/build-aux/git-authenticate.scm b/build-aux/git-authenticate.scm index 5e1fdaaa24..a3d4b40ccf 100644 --- a/build-aux/git-authenticate.scm +++ b/build-aux/git-authenticate.scm @@ -252,7 +252,7 @@ (filter-map (lambda (id) (false-if-exception (commit-lookup repository (string->oid id)))) - (previously-authenticated-commits))) + (previously-authenticated-commits "channels/guix"))) (define commits ;; Commits to authenticate, excluding the closure of @@ -274,7 +274,8 @@ #:default-authorizations %historical-authorized-signing-keys #:report-progress report))))) - (cache-authenticated-commit (oid->string (commit-id end-commit))) + (cache-authenticated-commit "channels/guix" + (oid->string (commit-id end-commit))) (unless (null? stats) (format #t (G_ "Signing statistics:~%")) diff --git a/guix/git-authenticate.scm b/guix/git-authenticate.scm index 0d6f696a0b..cdb54a01a7 100644 --- a/guix/git-authenticate.scm +++ b/guix/git-authenticate.scm @@ -295,33 +295,33 @@ The OpenPGP keyring is loaded from KEYRING-REFERENCE in REPOSITORY." ;;; Caching. ;;; -(define (authenticated-commit-cache-file) +(define (authenticated-commit-cache-file key) "Return the name of the file that contains the cache of -previously-authenticated commits." - (string-append (cache-directory) "/authentication/channels/guix")) +previously-authenticated commits for KEY." + (string-append (cache-directory) "/authentication/" key)) -(define (previously-authenticated-commits) - "Return the previously-authenticated commits as a list of commit IDs (hex -strings)." +(define (previously-authenticated-commits key) + "Return the previously-authenticated commits under KEY as a list of commit +IDs (hex strings)." (catch 'system-error (lambda () - (call-with-input-file (authenticated-commit-cache-file) + (call-with-input-file (authenticated-commit-cache-file key) read)) (lambda args (if (= ENOENT (system-error-errno args)) '() (apply throw args))))) -(define (cache-authenticated-commit commit-id) - "Record in ~/.cache COMMIT-ID and its closure as authenticated (only -COMMIT-ID is written to cache, though)." +(define (cache-authenticated-commit key commit-id) + "Record in ~/.cache, under KEY, COMMIT-ID and its closure as +authenticated (only COMMIT-ID is written to cache, though)." (define %max-cache-length ;; Maximum number of commits in cache. 200) (let ((lst (delete-duplicates - (cons commit-id (previously-authenticated-commits)))) - (file (authenticated-commit-cache-file))) + (cons commit-id (previously-authenticated-commits key)))) + (file (authenticated-commit-cache-file key))) (mkdir-p (dirname file)) (with-atomic-file-output file (lambda (port) |