Hello Guix!

Following a discussion we had at the GHM today, here’s the tip of the day!

People often ask how they could store their GuixSD config alongside the
instantiated system in the store.  Guix maintainers usually grumpily
reply “nah, don’t do this, because the config file is not
self-contained, so that’s not good enough.”

But wait: we can already store the config file in the instantiated
system!  Here’s how:

  (operating-system
    ;; …
    (services (cons (simple-service 'store-my-config
                                    etc-service-type
                                    `(("config.scm"
                                       ,(local-file (assoc-ref
                                                     (current-source-location)
                                                     'filename)))))
                    …)))

You instantiate that, and then /etc/config.scm (aka.
/run/current-system/etc/config.scm,
aka. /var/guix/profiles/system/etc/config.scm) contains the config file.

Pretty neat no?

Enjoy!

Ludo’.

Reply via email to