Commit | Line | Data |
---|---|---|
a49d633c | 1 | ;;; GNU Guix --- Functional package management for GNU |
786c9c39 | 2 | ;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> |
91c231a2 | 3 | ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> |
a49d633c MO |
4 | ;;; |
5 | ;;; This file is part of GNU Guix. | |
6 | ;;; | |
7 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
8 | ;;; under the terms of the GNU General Public License as published by | |
9 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
10 | ;;; your option) any later version. | |
11 | ;;; | |
12 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
13 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | ;;; GNU General Public License for more details. | |
16 | ;;; | |
17 | ;;; You should have received a copy of the GNU General Public License | |
18 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
19 | ||
20 | (define-module (gnu installer record) | |
21 | #:use-module (guix records) | |
22 | #:use-module (srfi srfi-1) | |
23 | #:export (<installer> | |
24 | installer | |
25 | make-installer | |
26 | installer? | |
27 | installer-name | |
28 | installer-init | |
29 | installer-exit | |
30 | installer-exit-error | |
dc5f3275 | 31 | installer-final-page |
a49d633c MO |
32 | installer-keymap-page |
33 | installer-locale-page | |
34 | installer-menu-page | |
35 | installer-network-page | |
36 | installer-timezone-page | |
37 | installer-hostname-page | |
38 | installer-user-page | |
69a934f2 | 39 | installer-partition-page |
b51bde71 | 40 | installer-services-page |
786c9c39 | 41 | installer-welcome-page |
07a53bd5 MO |
42 | installer-parameters-menu |
43 | installer-parameters-page)) | |
a49d633c MO |
44 | |
45 | \f | |
46 | ;;; | |
47 | ;;; Installer record. | |
48 | ;;; | |
49 | ||
50 | ;; The <installer> record contains pages that will be run to prompt the user | |
51 | ;; for the system configuration. The goal of the installer is to produce a | |
52 | ;; complete <operating-system> record and install it. | |
53 | ||
54 | (define-record-type* <installer> | |
55 | installer make-installer | |
56 | installer? | |
57 | ;; symbol | |
58 | (name installer-name) | |
59 | ;; procedure: void -> void | |
60 | (init installer-init) | |
61 | ;; procedure: void -> void | |
62 | (exit installer-exit) | |
63 | ;; procedure (key arguments) -> void | |
64 | (exit-error installer-exit-error) | |
dc5f3275 MO |
65 | ;; procedure void -> void |
66 | (final-page installer-final-page) | |
91c231a2 | 67 | ;; procedure (layouts context) -> (list layout variant options) |
a49d633c MO |
68 | (keymap-page installer-keymap-page) |
69 | ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) | |
70 | ;; -> glibc-locale | |
71 | (locale-page installer-locale-page) | |
72 | ;; procedure: (steps) -> step-id | |
73 | (menu-page installer-menu-page) | |
74 | ;; procedure void -> void | |
75 | (network-page installer-network-page) | |
76 | ;; procedure (zonetab) -> posix-timezone | |
77 | (timezone-page installer-timezone-page) | |
78 | ;; procedure void -> void | |
79 | (hostname-page installer-hostname-page) | |
80 | ;; procedure void -> void | |
81 | (user-page installer-user-page) | |
b51bde71 | 82 | ;; procedure void -> void |
69a934f2 MO |
83 | (partition-page installer-partition-page) |
84 | ;; procedure void -> void | |
b51bde71 | 85 | (services-page installer-services-page) |
a49d633c | 86 | ;; procedure (logo) -> void |
786c9c39 MO |
87 | (welcome-page installer-welcome-page) |
88 | ;; procedure (menu-proc) -> void | |
07a53bd5 | 89 | (parameters-menu installer-parameters-menu) |
786c9c39 | 90 | ;; procedure (keyboard-layout-selection) -> void |
07a53bd5 | 91 | (parameters-page installer-parameters-page)) |