~ruther/guix-local

91d817cc17fad5bfcba6ea3406b1275e8695f658 — Mathieu Othacehe 3 years ago 2c11e85
installer: partition: Add a confirmation page before formatting.

Fixes: <https://issues.guix.gnu.org/57232>.

* gnu/installer/newt/partition.scm (run-label-confirmation-page): New
procedure.
(run-label-page): Call the above procedure before proceeding.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
1 files changed, 15 insertions(+), 1 deletions(-)

M gnu/installer/newt/partition.scm
M gnu/installer/newt/partition.scm => gnu/installer/newt/partition.scm +15 -1
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2019, 2022 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;


@@ 92,6 92,18 @@ disk.  The installation device as well as the small devices are filtered.")
         (device (car result)))
    device))

(define (run-label-confirmation-page callback)
  (lambda (item)
    (match (current-clients)
      (()
       (and (run-confirmation-page
             (format #f (G_ "This will create a new ~a partition table, \
all data on disk will be lost, are you sure you want to proceed?") item)
             (G_ "Format disk?")
             #:exit-button-procedure callback)
            item))
      (_ item))))

(define (run-label-page button-text button-callback)
  "Run a page asking the user to select a partition table label."
  ;; Force the GPT label if UEFI is supported.


@@ 103,6 115,8 @@ Be careful, all data on the disk will be lost.")
       #:title (G_ "Partition table")
       #:listbox-items '("msdos" "gpt")
       #:listbox-item->text identity
       #:listbox-callback-procedure
       (run-label-confirmation-page button-callback)
       #:button-text button-text
       #:button-callback-procedure button-callback)))