diff options
author | Sergey Trofimov <sarg@sarg.org.ru> | 2023-03-19 16:45:37 +0100 |
---|---|---|
committer | Andrew Tropin <andrew@trop.in> | 2023-03-20 09:14:23 +0400 |
commit | 1f36534c7e8f2325bff4df5d37ecc811dc63fc38 (patch) | |
tree | 76a274c64ff9fd2b5e15142a0ea994fbcae68e4d | |
parent | d429ff12e5e7e1f0515f4bf5cdda98744cda967e (diff) | |
download | guix-1f36534c7e8f2325bff4df5d37ecc811dc63fc38.tar.gz guix-1f36534c7e8f2325bff4df5d37ecc811dc63fc38.zip |
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>
-rw-r--r-- | gnu/home.scm | 16 |
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." |