[bug#76082,2/9] home: services: Unset variables after profile init.
Commit Message
While they aren’t exported, these temporary variables show up in the
resulting shell, cluttering tab completion and declare -p.
* gnu/home/services.scm (environment-variables->setup-environment-script):
Unset shell variables.
* gnu/home/services/shells.scm (add-shell-profile-file): Likewise.
Change-Id: Ibb634849d9f38c1a9a44c0d493e92231364de958
---
gnu/home/services.scm | 6 +++++-
gnu/home/services/shells.scm | 3 ++-
2 files changed, 7 insertions(+), 2 deletions(-)
@@ -275,7 +275,8 @@ (define (environment-variables->setup-environment-script vars)
(lambda (port)
(set-port-encoding! port "UTF-8")
(display "\
-HOME_ENVIRONMENT=$HOME/.guix-home
+# NOTE: Set HOME_ENVIRONMENT before sourcing (home-shell-profile-service-type ensures
+# ~/.profile does)
GUIX_PROFILE=\"$HOME_ENVIRONMENT/profile\"
PROFILE_FILE=\"$GUIX_PROFILE/etc/profile\"
[ -f $PROFILE_FILE ] && . $PROFILE_FILE
@@ -301,6 +302,9 @@ (define (environment-variables->setup-environment-script vars)
*) export XCURSOR_PATH=$GUIX_PROFILE/share/icons:$XCURSOR_PATH ;;
esac
+# Keep the shell environment clean.
+unset GUIX_PROFILE PROFILE_FILE
+
" port)
(display
#$(environment-variable-shell-definitions vars)
@@ -89,7 +89,8 @@ (define (add-shell-profile-file config)
"\
HOME_ENVIRONMENT=$HOME/.guix-home
. $HOME_ENVIRONMENT/setup-environment
-$HOME_ENVIRONMENT/on-first-login\n"
+$HOME_ENVIRONMENT/on-first-login
+unset HOME_ENVIRONMENT\n"
(serialize-configuration
config
(filter-configuration-fields