aboutsummaryrefslogtreecommitdiff
path: root/gnu/home.scm
diff options
context:
space:
mode:
authorSergey Trofimov <sarg@sarg.org.ru>2023-03-19 16:45:37 +0100
committerAndrew Tropin <andrew@trop.in>2023-03-20 09:14:23 +0400
commit1f36534c7e8f2325bff4df5d37ecc811dc63fc38 (patch)
tree76a274c64ff9fd2b5e15142a0ea994fbcae68e4d /gnu/home.scm
parentd429ff12e5e7e1f0515f4bf5cdda98744cda967e (diff)
downloadguix-1f36534c7e8f2325bff4df5d37ecc811dc63fc38.tar
guix-1f36534c7e8f2325bff4df5d37ecc811dc63fc38.tar.gz
home: 'home-environment-with-provenance' uses the HE location info.
* gnu/home.scm (home-environment-with-provenance): Make `config-file` optional, with the default taken from the HE location info. Signed-off-by: Andrew Tropin <andrew@trop.in>
Diffstat (limited to 'gnu/home.scm')
-rw-r--r--gnu/home.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/gnu/home.scm b/gnu/home.scm
index 6d3f705758..2fefe7ba53 100644
--- a/gnu/home.scm
+++ b/gnu/home.scm
@@ -103,7 +103,21 @@
#:target-type home-service-type)))
(service-value home)))
-(define* (home-environment-with-provenance he config-file)
+
+(define (home-environment-configuration-file he)
+ "Return the configuration file of HE, based on its 'location' field, or #f
+if it could not be determined."
+ (let ((file (and=> (home-environment-location he)
+ location-file)))
+ (and file
+ (or (and (string-prefix? "/" file) file)
+ (search-path %load-path file)))))
+
+(define* (home-environment-with-provenance he
+ #:optional
+ (config-file
+ (home-environment-configuration-file
+ he)))
"Return a variant of HE that stores its own provenance information,
including CONFIG-FILE, if available. This is achieved by adding an instance
of HOME-PROVENANCE-SERVICE-TYPE to its services."