env: Add environment-mounted?

This commit is contained in:
Davie Li 2024-02-04 19:02:43 +01:00
parent b00cb803ee
commit a2ea1192f3
Signed by: davie
GPG key ID: 29FD88532FC91BF4

19
env.scm
View file

@ -1,6 +1,7 @@
(define-module (env)
#:use-module (gcrypt hash)
#:use-module (guix base32)
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#:use-module (guix hash)
#:use-module (ice-9 ftw)
@ -38,7 +39,8 @@
remove-env-no-checks!
roll-back!
environment->overlay-mount-maybe
unmount-environment))
unmount-environment
environment-mounted?))
(define directory-files (@@ (ice-9 ftw) directory-files))
@ -439,6 +441,21 @@ by other environments made."
(when (file-exists? tmpdirln)
(delete-file tmpdirln))))
(define (fuse-overlayfs-mounts)
(filter (λ (m) (equal? "fuse.fuse-overlayfs"
(mount-type m) ))
(mounts)))
(define (fuse-overlayfs-mount-points)
(map mount-point (fuse-overlayfs-mounts)))
(define (environment-mounted? env)
(if (member (string-append %env-directory
"/" (symbol->string (environment-name env)))
(fuse-overlayfs-mount-points))
#t
#f))
(define (environment->overlay-mount-maybe env)
(let* ((name (symbol->string (environment-name env)))
(dir (readlink (string-append "/tmp/genv/" name))))