mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
ui: Factorize user-provided Scheme file loading.
* guix/ui.scm (make-user-module, load*): New procedures. * guix/scripts/system.scm (%user-module): Define in terms of 'make-user-module'. (read-operating-system): Define in terms of load*'.
This commit is contained in:
parent
d620ea889c
commit
7ea1432e22
2 changed files with 28 additions and 18 deletions
|
@ -48,28 +48,14 @@
|
|||
|
||||
(define %user-module
|
||||
;; Module in which the machine description file is loaded.
|
||||
(let ((module (make-fresh-user-module)))
|
||||
(for-each (lambda (iface)
|
||||
(module-use! module (resolve-interface iface)))
|
||||
'((gnu system)
|
||||
(gnu services)
|
||||
(gnu system shadow)))
|
||||
module))
|
||||
(make-user-module '((gnu system)
|
||||
(gnu services)
|
||||
(gnu system shadow))))
|
||||
|
||||
(define (read-operating-system file)
|
||||
"Read the operating-system declaration from FILE and return it."
|
||||
;; TODO: Factorize.
|
||||
(catch #t
|
||||
(lambda ()
|
||||
;; Avoid ABI incompatibility with the <operating-system> record.
|
||||
(set! %fresh-auto-compile #t)
|
||||
(load* file %user-module))
|
||||
|
||||
(save-module-excursion
|
||||
(lambda ()
|
||||
(set-current-module %user-module)
|
||||
(primitive-load file))))
|
||||
(lambda args
|
||||
(report-load-error file args))))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue