From 12a3d7d6f747b2b3c456ba20727e1ac97f9a952f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 28 Jul 2020 22:36:20 +0200 Subject: 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'. --- gnu/system.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'gnu') 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." -- cgit v1.2.3