X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/dc5f3275ecbddc804875899e9e457299a835d7ab..refs/heads/wip-bees:/gnu/installer/newt.scm diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 77a7e6dca2..4f7fc6f4dc 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,18 +18,25 @@ (define-module (gnu installer newt) #:use-module (gnu installer record) + #:use-module (gnu installer utils) #:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt final) + #:use-module (gnu installer newt parameters) #:use-module (gnu installer newt hostname) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) #:use-module (gnu installer newt menu) #:use-module (gnu installer newt network) + #:use-module (gnu installer newt page) + #:use-module (gnu installer newt partition) + #:use-module (gnu installer newt services) + #:use-module (gnu installer newt substitutes) #:use-module (gnu installer newt timezone) #:use-module (gnu installer newt user) #:use-module (gnu installer newt utils) #:use-module (gnu installer newt welcome) #:use-module (gnu installer newt wifi) + #:use-module (guix config) #:use-module (guix discovery) #:use-module (guix i18n) #:use-module (srfi srfi-26) @@ -39,13 +46,34 @@ (define (init) (newt-init) (clear-screen) - (set-screen-size!)) + (set-screen-size!) + (syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows)) + (push-help-line + (format #f (G_ "Press for installation parameters.")))) (define (exit) - (newt-finish)) + (newt-finish) + (clear-screen)) -(define (exit-error key . args) - (newt-finish)) +(define (exit-error file key args) + (newt-set-color COLORSET-ROOT "white" "red") + (let ((width (nearest-exact-integer + (* (screen-columns) 0.8))) + (height (nearest-exact-integer + (* (screen-rows) 0.7)))) + (run-file-textbox-page + #:info-text (format #f (G_ "The installer has encountered an unexpected \ +problem. The backtrace is displayed below. Please report it by email to \ +<~a>.") %guix-bug-report-address) + #:title (G_ "Unexpected problem") + #:file file + #:exit-button? #f + #:info-textbox-width width + #:file-textbox-width width + #:file-textbox-height height)) + (newt-set-color COLORSET-ROOT "white" "blue") + (newt-finish) + (clear-screen)) (define (final-page result prev-steps) (run-final-page result prev-steps)) @@ -68,19 +96,33 @@ (define (menu-page steps) (run-menu-page steps)) -(define* (keymap-page #:key models layouts) - (run-keymap-page #:models models - #:layouts layouts)) +(define* (keymap-page layouts context) + (run-keymap-page layouts #:context context)) (define (network-page) (run-network-page)) +(define (substitutes-page) + (run-substitutes-page)) + (define (hostname-page) (run-hostname-page)) (define (user-page) (run-user-page)) +(define (partition-page) + (run-partitioning-page)) + +(define (services-page) + (run-services-page)) + +(define (parameters-menu menu-proc) + (newt-set-help-callback menu-proc)) + +(define (parameters-page keyboard-layout-selection) + (run-parameters-page keyboard-layout-selection)) + (define newt-installer (installer (name 'newt) @@ -92,7 +134,12 @@ (locale-page locale-page) (menu-page menu-page) (network-page network-page) + (substitutes-page substitutes-page) (timezone-page timezone-page) (hostname-page hostname-page) (user-page user-page) - (welcome-page welcome-page))) + (partition-page partition-page) + (services-page services-page) + (welcome-page welcome-page) + (parameters-menu parameters-menu) + (parameters-page parameters-page)))