diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2020-07-28 22:36:20 +0200 | 
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2020-07-29 00:22:01 +0200 | 
| commit | 12a3d7d6f747b2b3c456ba20727e1ac97f9a952f (patch) | |
| tree | e6602f8283267c668a6cea3b39750d7533b0825c | |
| parent | 5c622a0a680ca69f8c1f3ce23dabdd93e774a56f (diff) | |
system: 'operating-system-with-provenance' uses the OS location info.
This allows 'guix deploy' to save the config file when it's available.
* gnu/system.scm (operating-system-configuration-file): New procedure.
(operating-system-with-provenance): 'config-file' defaults to the value
returned by 'operating-system-configuration-file'.
| -rw-r--r-- | gnu/system.scm | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/gnu/system.scm b/gnu/system.scm index c8ef641695..5dd2f7f680 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -651,7 +651,20 @@ bookkeeping."                                      gc-root-service-type roots)                      (operating-system-user-services os))))) -(define* (operating-system-with-provenance os #:optional config-file) +(define (operating-system-configuration-file os) +  "Return the configuration file of OS, based on its 'location' field, or #f +if it could not be determined." +  (let ((file (and=> (operating-system-location os) +                     location-file))) +    (and file +         (or (and (string-prefix? "/" file) file) +             (search-path %load-path file))))) + +(define* (operating-system-with-provenance os +                                           #:optional +                                           (config-file +                                            (operating-system-configuration-file +                                             os)))    "Return a variant of OS that stores its own provenance information,  including CONFIG-FILE, if available.  This is achieved by adding an instance  of PROVENANCE-SERVICE-TYPE to its services." | 
