guix-install.sh: Add Bash prompt customization option.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Fri, 7 Oct 2022 03:00:46 +0000 (23:00 -0400)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Fri, 7 Oct 2022 12:25:40 +0000 (08:25 -0400)
Fixes <https://issues.guix.gnu.org/55484>.

* etc/guix-install.sh (sys_customize_bashrc): New function.
(main): Use it.

etc/guix-install.sh

index 29d1c0b..f71d6f0 100755 (executable)
@@ -567,6 +567,24 @@ sys_create_shell_completion()
         _msg "${PAS}installed shell completion"
 }
 
+sys_customize_bashrc()
+{
+    prompt_yes_no "Customize users Bash shell prompt for Guix?" || return
+    for bashrc in /home/*/.bashrc /root/.bashrc; do
+        test -f "$bashrc" || continue
+        grep -Fq '$GUIX_ENVIRONMENT' "$bashrc" && continue
+        cp "${bashrc}" "${bashrc}.bak"
+        echo '
+# Automatically added by the Guix install script.
+if [ -n "$GUIX_ENVIRONMENT" ]; then
+    if [[ $PS1 =~ (.*)"\\$" ]]; then
+        PS1="${BASH_REMATCH[1]} [env]\\\$ "
+    fi
+fi
+' >> "$bashrc"
+    done
+    _msg "${PAS}Bash shell prompt successfully customized for Guix"
+}
 
 welcome()
 {
@@ -636,6 +654,7 @@ main()
     sys_authorize_build_farms
     sys_create_init_profile
     sys_create_shell_completion
+    sys_customize_bashrc
 
     _msg "${INF}cleaning up ${tmp_path}"
     rm -r "${tmp_path}"