diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-07-24 22:45:24 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-07-24 23:02:27 +0200 |
commit | 1dac85663858c8323a0d2483fb675aa5820d4d0e (patch) | |
tree | f9455f18fe09495f5af9c34b89187140a4869134 /gnu/system | |
parent | 0a90af153199b03deced53da7ef7f50f0e561f80 (diff) | |
download | guix-1dac85663858c8323a0d2483fb675aa5820d4d0e.tar.gz |
install: Add a configuration template to the image.
* gnu/system/os-config.tmpl: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it * gnu/system/install.scm (configuration-template-service): New procedure. (installation-services): Call it. * doc/guix.texi (System Installation): Mention configuration-template.scm, and @include gnu/system/os-config.tmpl.
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/install.scm | 24 | ||||
-rw-r--r-- | gnu/system/os-config.tmpl | 31 |
2 files changed, 55 insertions, 0 deletions
diff --git a/gnu/system/install.scm b/gnu/system/install.scm index d3539b3f84..567934e4c1 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -115,6 +115,27 @@ the given target.") (delete-file-recursively (string-append target #$%backing-directory)))))))) +(define (configuration-template-service) + "Return a dummy service whose purpose is to install an operating system +configuration template file in the installation system." + + (define local-template + "/etc/configuration-template.scm") + (define template + (search-path %load-path "gnu/system/os-config.tmpl")) + + (mlet %store-monad ((template (interned-file template))) + (return (service + (requirement '(root-file-system)) + (provision '(os-config-template)) + (documentation + "This dummy service installs an OS configuration template.") + (start #~(const #t)) + (stop #~(const #f)) + (activate + #~(unless (file-exists? #$local-template) + (copy-file #$template #$local-template))))))) + (define (installation-services) "Return the list services for the installation image." (let ((motd (text-file "motd" " @@ -144,6 +165,9 @@ You have been warned. Thanks for being so brave. #:auto-login "guest" #:login-program (log-to-info)) + ;; Documentation add-on. + (configuration-template-service) + ;; A bunch of 'root' ttys. (normal-tty "tty3") (normal-tty "tty4") diff --git a/gnu/system/os-config.tmpl b/gnu/system/os-config.tmpl new file mode 100644 index 0000000000..ad58606f67 --- /dev/null +++ b/gnu/system/os-config.tmpl @@ -0,0 +1,31 @@ +;; This is an operating system configuration template. + +(use-modules (gnu)) + +(operating-system + (host-name "antelope") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + ;; Assuming /dev/sdX is the target hard disk, and "root" is + ;; the label of the target root file system. + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems (cons (file-system + (device "root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + ;; This is where user accounts are specified. The "root" + ;; account is implicit, and is initially created with the + ;; empty password. + (users (list (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + + ;; Adding the account to the "wheel" group + ;; makes it a sudoer. + (supplementary-groups '("wheel")) + (home-directory "/home/alice"))))) |