installer: Do not ask for keyboard model.
[jackhill/guix/guix.git] / gnu / installer / newt.scm
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)
20 #:use-module (gnu installer record)
21 #:use-module (gnu installer newt ethernet)
22 #:use-module (gnu installer newt final)
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)
33 #:use-module (guix discovery)
34 #:use-module (guix i18n)
35 #:use-module (srfi srfi-26)
36 #:use-module (newt)
37 #:export (newt-installer))
38
39 (define (init)
40 (newt-init)
41 (clear-screen)
42 (set-screen-size!))
43
44 (define (exit)
45 (newt-finish))
46
47 (define (exit-error key . args)
48 (newt-finish))
49
50 (define (final-page result prev-steps)
51 (run-final-page result prev-steps))
52
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))
61
62 (define (timezone-page zonetab)
63 (run-timezone-page zonetab))
64
65 (define (welcome-page logo)
66 (run-welcome-page logo))
67
68 (define (menu-page steps)
69 (run-menu-page steps))
70
71 (define* (keymap-page layouts)
72 (run-keymap-page layouts))
73
74 (define (network-page)
75 (run-network-page))
76
77 (define (hostname-page)
78 (run-hostname-page))
79
80 (define (user-page)
81 (run-user-page))
82
83 (define newt-installer
84 (installer
85 (name 'newt)
86 (init init)
87 (exit exit)
88 (exit-error exit-error)
89 (final-page final-page)
90 (keymap-page keymap-page)
91 (locale-page locale-page)
92 (menu-page menu-page)
93 (network-page network-page)
94 (timezone-page timezone-page)
95 (hostname-page hostname-page)
96 (user-page user-page)
97 (welcome-page welcome-page)))