home: services: Unset variables after profile init.

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
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Liam Hupfer 2025-02-05 22:24:58 -06:00 committed by Ludovic Courtès
parent 890fe50d9b
commit 50a2d73eac
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 7 additions and 2 deletions

View file

@ -275,7 +275,8 @@ exported."
(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 @@ case $XCURSOR_PATH in
*) 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)

View file

@ -89,7 +89,8 @@ really know what you do."))
"\
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