diff options
author | Christopher Baines <mail@cbaines.net> | 2023-05-20 12:09:56 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-05-20 12:09:56 +0100 |
commit | 5a647ac7b9ed8003957a5e45b31e5e5d8f40772e (patch) | |
tree | cf2dbf73a6ced48f15942b53800685eec033c1c5 | |
parent | 23352ff50efa03d545047e79d5333795977e02db (diff) | |
download | nar-herder-5a647ac7b9ed8003957a5e45b31e5e5d8f40772e.tar nar-herder-5a647ac7b9ed8003957a5e45b31e5e5d8f40772e.tar.gz |
Tweak code for removing cached nars
Mostly neatness changes but also change > to >= to handle the case
where all cached nars are being removed.
-rw-r--r-- | nar-herder/cached-compression.scm | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/nar-herder/cached-compression.scm b/nar-herder/cached-compression.scm index cd334af..91f7291 100644 --- a/nar-herder/cached-compression.scm +++ b/nar-herder/cached-compression.scm @@ -184,23 +184,24 @@ (match (database-fold-cached-narinfo-files database - (match-lambda* - ((details (finished? bytes result)) - (if finished? - (list finished? bytes result) - (if (eq? (assq-ref details 'compression) - compression) - (let ((new-bytes - (+ bytes - (assq-ref details 'size)))) - (cons - ;; finished if enough bytes are going - ;; to be removed - (> new-bytes bytes-to-remove) - (list new-bytes (cons details result)))) - (list #f bytes result))))) - '(#f 0 ())) - ((#t bytes-for-removal files-to-remove-details) + (lambda (details result) + (match result + (#(finished? bytes files-to-remove) + (if finished? + result + (if (eq? (assq-ref details 'compression) + compression) + (let ((new-bytes + (+ bytes + (assq-ref details 'size)))) + ;; finished if enough bytes are going + ;; to be removed + (vector (>= new-bytes bytes-to-remove) + new-bytes + (cons details files-to-remove))) + result))))) + #(#f 0 ())) + (#(#t bytes-for-removal files-to-remove-details) (log-msg 'DEBUG "removing " (length files-to-remove-details) " " compression " compressed nars from the cache") |