Hello,

Mikhail Kryshen <[email protected]> skribis:

> Here is an example of a manifest file that loads multiple manifests and
> composes them into one:
>
> ----------------------------------------------------------------------
> (use-modules (srfi srfi-1)
>              ((guix ui) #:select (make-user-module)))
>
> (define (load-manifest file)
>   ;; Load manifest file in a fresh module with necessary imports.
>   (let ((module (make-user-module '((guix profiles) (gnu)))))
>     (save-module-excursion
>      (lambda _
>        (set-current-module module)
>        (load (canonicalize-path file))))))
>
> (define (combined-manifest-from-files . files)
>   (fold (lambda (file combined)
>           (manifest-add combined
>                         (manifest-entries (load-manifest file))))
>         (manifest '())
>         files))
>
> (combined-manifest-from-files
>  "emacs.scm"
>  "xorg.scm"
>  "etc.scm")
> ----------------------------------------------------------------------

Nice example!

Ludo’.

Reply via email to