installer: Move everything to the build side.
[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 hostname)
23 #:use-module (gnu installer newt keymap)
24 #:use-module (gnu installer newt locale)
25 #:use-module (gnu installer newt menu)
26 #:use-module (gnu installer newt network)
27 #:use-module (gnu installer newt timezone)
28 #:use-module (gnu installer newt user)
29 #:use-module (gnu installer newt utils)
30 #:use-module (gnu installer newt welcome)
31 #:use-module (gnu installer newt wifi)
32 #:use-module (guix discovery)
33 #:use-module (guix i18n)
34 #:use-module (srfi srfi-26)
35 #:use-module (newt)
36 #:export (newt-installer))
37
38 (define (init)
39 (newt-init)
40 (clear-screen)
41 (set-screen-size!))
42
43 (define (exit)
44 (newt-finish))
45
46 (define (exit-error key . args)
47 (newt-finish))
48
49 (define* (locale-page #:key
50 supported-locales
51 iso639-languages
52 iso3166-territories)
53 (run-locale-page
54 #:supported-locales supported-locales
55 #:iso639-languages iso639-languages
56 #:iso3166-territories iso3166-territories))
57
58 (define (timezone-page zonetab)
59 (run-timezone-page zonetab))
60
61 (define (welcome-page logo)
62 (run-welcome-page logo))
63
64 (define (menu-page steps)
65 (run-menu-page steps))
66
67 (define* (keymap-page #:key models layouts)
68 (run-keymap-page #:models models
69 #:layouts layouts))
70
71 (define (network-page)
72 (run-network-page))
73
74 (define (hostname-page)
75 (run-hostname-page))
76
77 (define (user-page)
78 (run-user-page))
79
80 (define newt-installer
81 (installer
82 (name 'newt)
83 (init init)
84 (exit exit)
85 (exit-error exit-error)
86 (keymap-page keymap-page)
87 (locale-page locale-page)
88 (menu-page menu-page)
89 (network-page network-page)
90 (timezone-page timezone-page)
91 (hostname-page hostname-page)
92 (user-page user-page)
93 (welcome-page welcome-page)))