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