From 786c9c39bc0826737e99f0c750ea30033cdbc202 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 30 Mar 2020 12:24:56 +0200 Subject: installer: Add a help page. * gnu/installer/newt/help.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer/record.scm (): Add 'help-menu' and 'help-page' fields, (installer-help-menu, installer-help-page): new exported procedures. * gnu/installer/newt.scm (init): Set the help line, (help-menu, help-page): new procedures used ... (newt-installer): ... here. * gnu/installer/newt/keymap.scm (run-layout-page): Add a context argument to differenciate the help context from the main one, (run-keymap-page): add a context argument and pass it to run-layout-page. * gnu/installer.scm (compute-keymap-step): Add a context argument and pass it to 'installer-keymap-page', (installer-steps): set the help menu and pass the appropriate context to compute-keymap-step calls, (guile-newt): update to revision 2. --- gnu/installer/newt.scm | 21 ++++++++++++++++----- gnu/installer/newt/help.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ gnu/installer/newt/keymap.scm | 33 +++++++++++++++++++++++---------- gnu/installer/record.scm | 14 ++++++++++---- 4 files changed, 92 insertions(+), 19 deletions(-) create mode 100644 gnu/installer/newt/help.scm (limited to 'gnu/installer') diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 6c44b4acf6..7ac015eaad 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. ;;; @@ -21,6 +21,7 @@ #:use-module (gnu installer utils) #:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt final) + #:use-module (gnu installer newt help) #:use-module (gnu installer newt hostname) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) @@ -44,7 +45,9 @@ (define (init) (newt-init) (clear-screen) - (set-screen-size!)) + (set-screen-size!) + (push-help-line + (format #f (G_ "Press for help.")))) (define (exit) (newt-finish) @@ -91,8 +94,8 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (menu-page steps) (run-menu-page steps)) -(define* (keymap-page layouts) - (run-keymap-page layouts)) +(define* (keymap-page layouts context) + (run-keymap-page layouts #:context context)) (define (network-page) (run-network-page)) @@ -109,6 +112,12 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (services-page) (run-services-page)) +(define (help-menu menu-proc) + (newt-set-help-callback menu-proc)) + +(define (help-page keyboard-layout-selection) + (run-help-page keyboard-layout-selection)) + (define newt-installer (installer (name 'newt) @@ -125,4 +134,6 @@ problem. The backtrace is displayed below. Please report it by email to \ (user-page user-page) (partition-page partition-page) (services-page services-page) - (welcome-page welcome-page))) + (welcome-page welcome-page) + (help-menu help-menu) + (help-page help-page))) diff --git a/gnu/installer/newt/help.scm b/gnu/installer/newt/help.scm new file mode 100644 index 0000000000..8d85832dc8 --- /dev/null +++ b/gnu/installer/newt/help.scm @@ -0,0 +1,43 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu installer newt help) + #:use-module (gnu installer steps) + #:use-module (gnu installer newt page) + #:use-module (guix i18n) + #:use-module (ice-9 match) + #:use-module (newt) + #:export (run-help-page)) + +(define (run-help-page keyboard-layout-selection) + "Run a help page allowing to change the keyboard layout" + (let* ((items + (list + (cons (G_ "Change keyboard layout") keyboard-layout-selection))) + (result + (run-listbox-selection-page + #:info-text (G_ "This is the help menu, please choose an action.") + #:title (G_ "Installation help") + #:listbox-items items + #:listbox-item->text car + #:sort-listbox-items? #f + #:button-text (G_ "Continue")))) + (match result + ((_ . proc) + (proc)) + (_ #f)))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 2908ba7f0e..0147a0b9d5 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. @@ -33,20 +33,32 @@ #:export (run-keymap-page keyboard-layout->configuration)) -(define (run-layout-page layouts layout->text) +(define (run-layout-page layouts layout->text context) (let ((title (G_ "Layout"))) (run-listbox-selection-page #:title title - #:info-text (G_ "Please choose your keyboard layout.") + #:info-text + (case context + ((help) (G_ "Please choose your keyboard layout. \ +It will only be used during the installation process.")) + (else (G_ "Please choose your keyboard layout. \ +It will be used during the install process, and for the installed system. \ +You can switch to different layout at any time from the help menu."))) #:listbox-items layouts #:listbox-item->text layout->text #:sort-listbox-items? #f - #:button-text (G_ "Exit") + #:button-text + (case context + ((help) (G_ "Continue")) + (else (G_ "Exit"))) #:button-callback-procedure - (lambda _ - (raise - (condition - (&installer-step-abort))))))) + (case context + ((help) (const #t)) + (else + (lambda _ + (raise + (condition + (&installer-step-abort))))))))) (define (run-variant-page variants variant->text) (let ((title (G_ "Variant"))) @@ -100,7 +112,7 @@ variants)) (cut append <> <>))) -(define* (run-keymap-page layouts) +(define* (run-keymap-page layouts #:key (context #f)) "Run a page asking the user to select a keyboard layout and variant. LAYOUTS is a list of supported X11-KEYMAP-LAYOUT. Return a list of two elements, the names of the selected keyboard layout and variant." @@ -114,7 +126,8 @@ names of the selected keyboard layout and variant." (sort-layouts layouts) (lambda (layout) (gettext (x11-keymap-layout-description layout) - "xkeyboard-config")))))) + "xkeyboard-config")) + context)))) ;; Propose the user to select a variant among those supported by the ;; previously selected layout. (installer-step diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index edf73b6215..78acf50c63 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.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. ;;; @@ -37,7 +37,9 @@ installer-user-page installer-partition-page installer-services-page - installer-welcome-page)) + installer-welcome-page + installer-help-menu + installer-help-page)) ;;; @@ -61,7 +63,7 @@ (exit-error installer-exit-error) ;; procedure void -> void (final-page installer-final-page) - ;; procedure (layouts) -> (list layout variant) + ;; procedure (layouts context) -> (list layout variant) (keymap-page installer-keymap-page) ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) ;; -> glibc-locale @@ -81,4 +83,8 @@ ;; procedure void -> void (services-page installer-services-page) ;; procedure (logo) -> void - (welcome-page installer-welcome-page)) + (welcome-page installer-welcome-page) + ;; procedure (menu-proc) -> void + (help-menu installer-help-menu) + ;; procedure (keyboard-layout-selection) -> void + (help-page installer-help-page)) -- cgit v1.2.3 From d52111450abc93f84e251c768c8cba47d37a48ee Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 30 Mar 2020 12:32:52 +0200 Subject: installer: Adapt to Guile-newt revision 2. * gnu/installer/newt/page.scm (run-input-page): Remove component argument that is not longer passed to the procedure passed to 'add-component-callback', (run-listbox-selection-page): ditto. * gnu/installer/newt/user.scm (run-user-add-page): Ditto, (run-user-add-page): ditto. --- gnu/installer/newt/page.scm | 4 ++-- gnu/installer/newt/user.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/installer') diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm index 9031c7d4ba..1d6b9979b4 100644 --- a/gnu/installer/newt/page.scm +++ b/gnu/installer/newt/page.scm @@ -231,7 +231,7 @@ input box, such as FLAG-PASSWORD." (add-component-callback input-visible-cb - (lambda (component) + (lambda () (set-entry-flags input-entry FLAG-PASSWORD FLAG-ROLE-TOGGLE))) @@ -486,7 +486,7 @@ the current listbox item has to be selected by key." ;; do nothing. (add-component-callback listbox - (lambda (component) + (lambda () (let* ((current-key (current-listbox-entry listbox)) (listbox-keys (map car keys)) (last-key (last-listbox-key)) diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm index ad711d665a..58bb86bf96 100644 --- a/gnu/installer/newt/user.scm +++ b/gnu/installer/newt/user.scm @@ -89,7 +89,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback entry-name - (lambda (component) + (lambda () (set-entry-text entry-home-directory (string-append "/home/" (entry-value entry-name))) @@ -99,7 +99,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback password-visible-cb - (lambda (component) + (lambda () (set-entry-flags entry-password FLAG-PASSWORD FLAG-ROLE-TOGGLE))) -- cgit v1.2.3 From e2385584db69a81db911a5c19abe7b050294c724 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 7 Apr 2020 10:57:13 +0200 Subject: installer: Reduce height of the help window. * gnu/installer/newt/help.scm (run-help-page): Pass #:listbox-height. --- gnu/installer/newt/help.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/installer') diff --git a/gnu/installer/newt/help.scm b/gnu/installer/newt/help.scm index 8d85832dc8..a488f5fa2a 100644 --- a/gnu/installer/newt/help.scm +++ b/gnu/installer/newt/help.scm @@ -36,6 +36,7 @@ #:listbox-items items #:listbox-item->text car #:sort-listbox-items? #f + #:listbox-height 6 #:button-text (G_ "Continue")))) (match result ((_ . proc) -- cgit v1.2.3 From 07a53bd512530d8f87e076263227216c467727bb Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 8 Apr 2020 10:16:25 +0200 Subject: installer: Turn help menu into parameters menu. * gnu/local.mk (INSTALLER_MODULES): Rename help.scm into parameters.scm. * po/guix/POTFILES.in: Ditto. * gnu/installer/record.scm (): Rename help-menu into parameter-menu and help-page into parameters-page. * gnu/installer/newt/parameters.scm: Renamed from help.scm. Update information messages. * gnu/installer/newt.scm: Update accordingly. * gnu/installer/newt/keymap.scm: Ditto. --- gnu/installer.scm | 6 +++--- gnu/installer/newt.scm | 14 ++++++------ gnu/installer/newt/help.scm | 44 -------------------------------------- gnu/installer/newt/keymap.scm | 8 +++---- gnu/installer/newt/parameters.scm | 45 +++++++++++++++++++++++++++++++++++++++ gnu/installer/record.scm | 8 +++---- gnu/local.mk | 2 +- po/guix/POTFILES.in | 2 +- 8 files changed, 65 insertions(+), 64 deletions(-) delete mode 100644 gnu/installer/newt/help.scm create mode 100644 gnu/installer/newt/parameters.scm (limited to 'gnu/installer') diff --git a/gnu/installer.scm b/gnu/installer.scm index 75c5a01570..6cd3995e51 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -198,11 +198,11 @@ selected keymap." (timezone-data #~(string-append #$tzdata "/share/zoneinfo/zone.tab"))) #~(lambda (current-installer) - ((installer-help-menu current-installer) + ((installer-parameters-menu current-installer) (lambda () - ((installer-help-page current-installer) + ((installer-parameters-page current-installer) (lambda _ - (#$(compute-keymap-step 'help) + (#$(compute-keymap-step 'param) current-installer))))) (list ;; Ask the user to choose a locale among those supported by diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 7ac015eaad..a24a152984 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -21,7 +21,7 @@ #:use-module (gnu installer utils) #:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt final) - #:use-module (gnu installer newt help) + #:use-module (gnu installer newt parameters) #:use-module (gnu installer newt hostname) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) @@ -47,7 +47,7 @@ (clear-screen) (set-screen-size!) (push-help-line - (format #f (G_ "Press for help.")))) + (format #f (G_ "Press for installation parameters.")))) (define (exit) (newt-finish) @@ -112,11 +112,11 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (services-page) (run-services-page)) -(define (help-menu menu-proc) +(define (parameters-menu menu-proc) (newt-set-help-callback menu-proc)) -(define (help-page keyboard-layout-selection) - (run-help-page keyboard-layout-selection)) +(define (parameters-page keyboard-layout-selection) + (run-parameters-page keyboard-layout-selection)) (define newt-installer (installer @@ -135,5 +135,5 @@ problem. The backtrace is displayed below. Please report it by email to \ (partition-page partition-page) (services-page services-page) (welcome-page welcome-page) - (help-menu help-menu) - (help-page help-page))) + (parameters-menu parameters-menu) + (parameters-page parameters-page))) diff --git a/gnu/installer/newt/help.scm b/gnu/installer/newt/help.scm deleted file mode 100644 index a488f5fa2a..0000000000 --- a/gnu/installer/newt/help.scm +++ /dev/null @@ -1,44 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2020 Mathieu Othacehe -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see . - -(define-module (gnu installer newt help) - #:use-module (gnu installer steps) - #:use-module (gnu installer newt page) - #:use-module (guix i18n) - #:use-module (ice-9 match) - #:use-module (newt) - #:export (run-help-page)) - -(define (run-help-page keyboard-layout-selection) - "Run a help page allowing to change the keyboard layout" - (let* ((items - (list - (cons (G_ "Change keyboard layout") keyboard-layout-selection))) - (result - (run-listbox-selection-page - #:info-text (G_ "This is the help menu, please choose an action.") - #:title (G_ "Installation help") - #:listbox-items items - #:listbox-item->text car - #:sort-listbox-items? #f - #:listbox-height 6 - #:button-text (G_ "Continue")))) - (match result - ((_ . proc) - (proc)) - (_ #f)))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 0147a0b9d5..8625afaa03 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -39,21 +39,21 @@ #:title title #:info-text (case context - ((help) (G_ "Please choose your keyboard layout. \ + ((param) (G_ "Please choose your keyboard layout. \ It will only be used during the installation process.")) (else (G_ "Please choose your keyboard layout. \ It will be used during the install process, and for the installed system. \ -You can switch to different layout at any time from the help menu."))) +You can switch to different layout at any time from the parameters menu."))) #:listbox-items layouts #:listbox-item->text layout->text #:sort-listbox-items? #f #:button-text (case context - ((help) (G_ "Continue")) + ((param) (G_ "Continue")) (else (G_ "Exit"))) #:button-callback-procedure (case context - ((help) (const #t)) + ((param) (const #t)) (else (lambda _ (raise diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm new file mode 100644 index 0000000000..4a34e94155 --- /dev/null +++ b/gnu/installer/newt/parameters.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu installer newt parameters) + #:use-module (gnu installer steps) + #:use-module (gnu installer newt page) + #:use-module (guix i18n) + #:use-module (ice-9 match) + #:use-module (newt) + #:export (run-parameters-page)) + +(define (run-parameters-page keyboard-layout-selection) + "Run a parameters page allowing to change the keyboard layout" + (let* ((items + (list + (cons (G_ "Change keyboard layout") keyboard-layout-selection))) + (result + (run-listbox-selection-page + #:info-text (G_ "Please choose one of the following parameters or \ +press ‘Back’ to go back to the installation process.") + #:title (G_ "Installation parameters") + #:listbox-items items + #:listbox-item->text car + #:sort-listbox-items? #f + #:listbox-height 6 + #:button-text (G_ "Back")))) + (match result + ((_ . proc) + (proc)) + (_ #f)))) diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index 78acf50c63..7bc22e90e0 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -38,8 +38,8 @@ installer-partition-page installer-services-page installer-welcome-page - installer-help-menu - installer-help-page)) + installer-parameters-menu + installer-parameters-page)) ;;; @@ -85,6 +85,6 @@ ;; procedure (logo) -> void (welcome-page installer-welcome-page) ;; procedure (menu-proc) -> void - (help-menu installer-help-menu) + (parameters-menu installer-parameters-menu) ;; procedure (keyboard-layout-selection) -> void - (help-page installer-help-page)) + (parameters-page installer-parameters-page)) diff --git a/gnu/local.mk b/gnu/local.mk index d177faf106..3757f7d6e1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -672,7 +672,7 @@ INSTALLER_MODULES = \ \ %D%/installer/newt/ethernet.scm \ %D%/installer/newt/final.scm \ - %D%/installer/newt/help.scm \ + %D%/installer/newt/parameters.scm \ %D%/installer/newt/hostname.scm \ %D%/installer/newt/keymap.scm \ %D%/installer/newt/locale.scm \ diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 4cc4fe7b31..77332e7b17 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -16,7 +16,7 @@ gnu/installer/locale.scm gnu/installer/newt.scm gnu/installer/newt/ethernet.scm gnu/installer/newt/final.scm -gnu/installer/newt/help.scm +gnu/installer/newt/parameters.scm gnu/installer/newt/hostname.scm gnu/installer/newt/keymap.scm gnu/installer/newt/locale.scm -- cgit v1.2.3 From ee0ad7803c82383ac1bced073d8670bc407797e7 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Wed, 8 Apr 2020 10:20:33 +0200 Subject: installer: Add proxy support. * gnu/installer/proxy.scm: New file. * gnu/local.mk (INSTALLER_MODULES): Add it. * po/guix/POTFILES.in: Add it. * gnu/installer/newt/parameters.scm (run-proxy-page): New procedure, (run-parameters-page): add the previous procedure to the parameters menu. --- gnu/installer/newt/parameters.scm | 14 +++++++++++- gnu/installer/proxy.scm | 45 +++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 1 + po/guix/POTFILES.in | 1 + 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 gnu/installer/proxy.scm (limited to 'gnu/installer') diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm index 4a34e94155..95112b5780 100644 --- a/gnu/installer/newt/parameters.scm +++ b/gnu/installer/newt/parameters.scm @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu installer newt parameters) + #:use-module (gnu installer proxy) #:use-module (gnu installer steps) #:use-module (gnu installer newt page) #:use-module (guix i18n) @@ -24,11 +25,22 @@ #:use-module (newt) #:export (run-parameters-page)) +(define (run-proxy-page) + (define proxy + (run-input-page (G_ "Please enter the HTTP proxy URL. If you enter an \ +empty string, proxy usage will be disabled.") + (G_ "HTTP proxy configuration") + #:allow-empty-input? #t)) + (if (string=? proxy "") + (clear-http-proxy) + (set-http-proxy proxy))) + (define (run-parameters-page keyboard-layout-selection) "Run a parameters page allowing to change the keyboard layout" (let* ((items (list - (cons (G_ "Change keyboard layout") keyboard-layout-selection))) + (cons (G_ "Change keyboard layout") keyboard-layout-selection) + (cons (G_ "Configure HTTP proxy") run-proxy-page))) (result (run-listbox-selection-page #:info-text (G_ "Please choose one of the following parameters or \ diff --git a/gnu/installer/proxy.scm b/gnu/installer/proxy.scm new file mode 100644 index 0000000000..befaf3ab0a --- /dev/null +++ b/gnu/installer/proxy.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu installer proxy) + #:use-module (gnu services herd) + #:export (set-http-proxy + clear-http-proxy)) + +(define-syntax-rule (with-silent-shepherd exp ...) + (parameterize ((shepherd-message-port + (%make-void-port "w"))) + exp ...)) + +(define (set-http-proxy proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy proxy) + result + result))) + +(define (clear-http-proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy) + result + result))) + +;; Local Variables: +;; eval: (put 'with-silent-shepherd 'scheme-indent-function 0) +;; End: diff --git a/gnu/local.mk b/gnu/local.mk index 3757f7d6e1..eefcdf501a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -662,6 +662,7 @@ INSTALLER_MODULES = \ %D%/installer/locale.scm \ %D%/installer/newt.scm \ %D%/installer/parted.scm \ + %D%/installer/proxy.scm \ %D%/installer/record.scm \ %D%/installer/services.scm \ %D%/installer/steps.scm \ diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 77332e7b17..62b3cbf4e4 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -31,6 +31,7 @@ gnu/installer/newt/utils.scm gnu/installer/newt/welcome.scm gnu/installer/newt/wifi.scm gnu/installer/parted.scm +gnu/installer/proxy.scm gnu/installer/record.scm gnu/installer/services.scm gnu/installer/steps.scm -- cgit v1.2.3