diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-23 00:08:54 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-23 00:34:47 +0200 |
commit | 7611074f677f1c3cfe5da426f387eeda1b6ad825 (patch) | |
tree | f9a87a7b7167665344ff36f1540b6ac9a3583fad /gnu/installer/utils.scm | |
parent | 5582aa8e31bf88f981caedeb4fbbb758486b6ca7 (diff) | |
download | guix-7611074f677f1c3cfe5da426f387eeda1b6ad825.tar guix-7611074f677f1c3cfe5da426f387eeda1b6ad825.tar.gz |
installer: Run 'guix system init' with the right locale.
* gnu/installer/utils.scm (run-shell-command): Add #:locale and honor it.
* gnu/installer/newt/final.scm (run-install-shell): Add 'locale'
parameter; pass it to 'install-system'.
(run-final-page): Obtain locale from RESULT; pass it to 'run-install-shell'.
* gnu/installer/final.scm (install-system): Add 'locale' parameter; pass
it to 'run-shell-command'.
Diffstat (limited to 'gnu/installer/utils.scm')
-rw-r--r-- | gnu/installer/utils.scm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index e91f90a84d..256722729c 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -54,9 +54,21 @@ number. If no percentage is found, return #f" (and result (string->number (match:substring result 1))))) -(define (run-shell-command command) +(define* (run-shell-command command #:key locale) + "Run COMMAND, a string, with Bash, and in the given LOCALE." (call-with-temporary-output-file (lambda (file port) + (when locale + (let ((supported? (false-if-exception + (setlocale LC_ALL locale)))) + ;; If LOCALE is not supported, then set LANGUAGE, which might at + ;; least give us translated messages. + (if supported? + (format port "export LC_ALL=\"~a\"~%" locale) + (format port "export LANGUAGE=\"~a\"~%" + (string-take locale + (string-index locale #\_)))))) + (format port "~a~%" command) ;; (format port "exit~%") (close port) |