aboutsummaryrefslogtreecommitdiff
path: root/etc/guix-install.sh
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-07-05 16:44:29 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-07-07 23:54:20 -0400
commit4cbe0127a668cbcc64087c5d311308b59d39b104 (patch)
treedfc1d26a82ff37616ec855423853ba1c2dfe1552 /etc/guix-install.sh
parentac3444968a8a081c17208ee6a9016f46b011167c (diff)
downloadguix-4cbe0127a668cbcc64087c5d311308b59d39b104.tar
guix-4cbe0127a668cbcc64087c5d311308b59d39b104.tar.gz
guix-install.sh: Prompt for configuring substitutes discovery.
Also ensure prompt_yes_no always print the message with a trailing space, which is more pleasing to the eye. * etc/guix-daemon.conf.in <--discover=no>: New guix-daemon option. * etc/guix-daemon.service.in: Likewise. * etc/init.d/guix-daemon.in: Likewise. * etc/openrc/guix-daemon.in: Likewise. * etc/guix-install.sh (configure_substitute_discovery): New procedure. (sys_enable_guix_daemon): Ask the user whether automatic substitute discovery should be enabled. Set the '--discover' argument accordingly. (prompt_yes_no): Add a trailing space to the message. (sys_authorize_build_farms): Remove trailing space from the message argument. * NEWS (Distribution): Add news.
Diffstat (limited to 'etc/guix-install.sh')
-rwxr-xr-xetc/guix-install.sh22
1 files changed, 20 insertions, 2 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 8ecadea97d..4d81940eb7 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -96,7 +96,7 @@ _debug()
# $1: The prompt question.
prompt_yes_no() {
while true; do
- read -rp "$1" yn
+ read -rp "$1 " yn
case $yn in
[Yy]*) return 0;;
[Nn]*) return 1;;
@@ -249,6 +249,16 @@ chk_sys_nscd()
fi
}
+# Configure substitute discovery according to user's preferences.
+# $1 is the installed service file to edit.
+configure_substitute_discovery() {
+ if grep -q -- '--discover=no' "$1" && \
+ prompt_yes_no "Would you like the Guix daemon to automatically \
+discover substitute servers on the local network? (yes/no)"; then
+ sed -i 's/--discover=no/--discover=yes/' "$1"
+ fi
+}
+
# ------------------------------------------------------------------------------
#+MAIN
@@ -397,6 +407,7 @@ sys_enable_guix_daemon()
{ initctl reload-configuration;
cp "~root/.config/guix/current/lib/upstart/system/guix-daemon.conf" \
/etc/init/ &&
+ configure_substitute_discovery /etc/init/guix-daemon.conf &&
start guix-daemon; } &&
_msg "${PAS}enabled Guix daemon via upstart"
;;
@@ -426,6 +437,9 @@ sys_enable_guix_daemon()
-e 's/^Environment=\(.*\)$/Environment=\1 LC_ALL=en_US.UTF-8';
fi;
+ configure_substitute_discovery \
+ /etc/systemd/system/guix-daemon.service
+
systemctl daemon-reload &&
systemctl enable guix-daemon &&
systemctl start guix-daemon; } &&
@@ -437,6 +451,8 @@ sys_enable_guix_daemon()
/etc/init.d/guix-daemon;
chmod 775 /etc/init.d/guix-daemon;
+ configure_substitute_discovery /etc/init.d/guix-daemon
+
update-rc.d guix-daemon defaults &&
update-rc.d guix-daemon enable &&
service guix-daemon start; } &&
@@ -448,6 +464,8 @@ sys_enable_guix_daemon()
/etc/init.d/guix-daemon;
chmod 775 /etc/init.d/guix-daemon;
+ configure_substitute_discovery /etc/init.d/guix-daemon
+
rc-update add guix-daemon default &&
rc-service guix-daemon start; } &&
_msg "${PAS}enabled Guix daemon via OpenRC"
@@ -472,7 +490,7 @@ sys_enable_guix_daemon()
sys_authorize_build_farms()
{ # authorize the public key of the build farm
if prompt_yes_no "Permit downloading pre-built package binaries from the \
-project's build farm? (yes/no) "; then
+project's build farm? (yes/no)"; then
guix archive --authorize \
< "~root/.config/guix/current/share/guix/ci.guix.gnu.org.pub" \
&& _msg "${PAS}Authorized public key for ci.guix.gnu.org"