installer: Add configuration formatter.
[jackhill/guix/guix.git] / gnu / installer / newt.scm
CommitLineData
d0f3a672
MO
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu installer newt)
a49d633c
MO
20 #:use-module (gnu installer record)
21 #:use-module (gnu installer newt ethernet)
dc5f3275 22 #:use-module (gnu installer newt final)
a49d633c
MO
23 #:use-module (gnu installer newt hostname)
24 #:use-module (gnu installer newt keymap)
25 #:use-module (gnu installer newt locale)
26 #:use-module (gnu installer newt menu)
27 #:use-module (gnu installer newt network)
28 #:use-module (gnu installer newt timezone)
29 #:use-module (gnu installer newt user)
30 #:use-module (gnu installer newt utils)
31 #:use-module (gnu installer newt welcome)
32 #:use-module (gnu installer newt wifi)
d0f3a672 33 #:use-module (guix discovery)
a49d633c
MO
34 #:use-module (guix i18n)
35 #:use-module (srfi srfi-26)
36 #:use-module (newt)
d0f3a672
MO
37 #:export (newt-installer))
38
a49d633c
MO
39(define (init)
40 (newt-init)
41 (clear-screen)
42 (set-screen-size!))
d0f3a672 43
a49d633c
MO
44(define (exit)
45 (newt-finish))
d0f3a672 46
a49d633c
MO
47(define (exit-error key . args)
48 (newt-finish))
d0f3a672 49
dc5f3275
MO
50(define (final-page result prev-steps)
51 (run-final-page result prev-steps))
52
a49d633c
MO
53(define* (locale-page #:key
54 supported-locales
55 iso639-languages
56 iso3166-territories)
57 (run-locale-page
58 #:supported-locales supported-locales
59 #:iso639-languages iso639-languages
60 #:iso3166-territories iso3166-territories))
d0f3a672 61
a49d633c
MO
62(define (timezone-page zonetab)
63 (run-timezone-page zonetab))
d0f3a672 64
a49d633c
MO
65(define (welcome-page logo)
66 (run-welcome-page logo))
d0f3a672 67
a49d633c
MO
68(define (menu-page steps)
69 (run-menu-page steps))
d0f3a672 70
a49d633c
MO
71(define* (keymap-page #:key models layouts)
72 (run-keymap-page #:models models
73 #:layouts layouts))
d0f3a672 74
a49d633c
MO
75(define (network-page)
76 (run-network-page))
d0f3a672 77
a49d633c
MO
78(define (hostname-page)
79 (run-hostname-page))
d0f3a672 80
a49d633c
MO
81(define (user-page)
82 (run-user-page))
d0f3a672
MO
83
84(define newt-installer
85 (installer
86 (name 'newt)
d0f3a672
MO
87 (init init)
88 (exit exit)
89 (exit-error exit-error)
dc5f3275 90 (final-page final-page)
d0f3a672
MO
91 (keymap-page keymap-page)
92 (locale-page locale-page)
93 (menu-page menu-page)
94 (network-page network-page)
95 (timezone-page timezone-page)
96 (hostname-page hostname-page)
97 (user-page user-page)
98 (welcome-page welcome-page)))