mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
list-runtime-roots: Canonicalize store items.
Looking at 'addAdditionalRoots' in libstore/gc.cc, it looks like it should always have been this way. In practice it probably doesn't make much of a difference. * nix/scripts/list-runtime-roots.in (canonicalize-store-item): New procedure. <top level>: Use it.
This commit is contained in:
parent
b8f59cdc20
commit
fb17a89912
1 changed files with 15 additions and 1 deletions
|
@ -26,6 +26,7 @@
|
||||||
(use-modules (ice-9 ftw)
|
(use-modules (ice-9 ftw)
|
||||||
(ice-9 regex)
|
(ice-9 regex)
|
||||||
(ice-9 rdelim)
|
(ice-9 rdelim)
|
||||||
|
(ice-9 match)
|
||||||
(srfi srfi-1)
|
(srfi srfi-1)
|
||||||
(srfi srfi-26)
|
(srfi srfi-26)
|
||||||
(rnrs io ports))
|
(rnrs io ports))
|
||||||
|
@ -126,5 +127,18 @@ or the empty list."
|
||||||
(lambda (a b)
|
(lambda (a b)
|
||||||
(< (string->number a) (string->number b))))))
|
(< (string->number a) (string->number b))))))
|
||||||
|
|
||||||
|
(define canonicalize-store-item
|
||||||
|
(let ((prefix (+ 1 (string-length %store-directory))))
|
||||||
|
(lambda (file)
|
||||||
|
"Return #f if FILE is not a store item; otherwise, return the store file
|
||||||
|
name without any sub-directory components."
|
||||||
|
(and (string-prefix? %store-directory file)
|
||||||
|
(string-append %store-directory "/"
|
||||||
|
(let ((base (string-drop file prefix)))
|
||||||
|
(match (string-index base #\/)
|
||||||
|
(#f base)
|
||||||
|
(slash (string-take base slash)))))))))
|
||||||
|
|
||||||
(for-each (cut simple-format #t "~a~%" <>)
|
(for-each (cut simple-format #t "~a~%" <>)
|
||||||
(delete-duplicates (referenced-files)))
|
(delete-duplicates
|
||||||
|
(filter-map canonicalize-store-item (referenced-files))))
|
||||||
|
|
Loading…
Reference in a new issue