summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorPrafulla Giri <pratheblackdiamond@gmail.com>2019-12-28 12:48:52 +0545
committerLudovic Courtès <ludo@gnu.org>2020-01-17 17:28:57 +0100
commit30810aff713149d53cb25f36ae6d721ec66385da (patch)
treed78b94bec23c33458a2dbfebfb65f161983f614c /etc
parent7b2a47a702b7393cd968640079f8703c932d1405 (diff)
downloadpatches-30810aff713149d53cb25f36ae6d721ec66385da.tar
patches-30810aff713149d53cb25f36ae6d721ec66385da.tar.gz
guix-install.sh: Create an init profile during installation
Create an init profile (/etc/profile.d/guix.sh) during installation for better integration with foreign distros. This file, read by login-shells sets a few environment variables (PATH, GUIX_PROFILE, GUIX_LOCALE, along with XDG_DATA_DIRS) and makes guix-installed packages readily available for the users. Other environment variables, as listed by `guix package --search-paths=prefix`, are also exported. Checks are in place to prevent the init profile from needlessly polluting the user's environment. * etc/guix-install.sh (sys_create_init_profile): New function to create /etc/profile.d/guix.sh init profile. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'etc')
-rwxr-xr-xetc/guix-install.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 111e25fbcb..b57d71981f 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -393,6 +393,26 @@ sys_authorize_build_farms()
done
}
+sys_create_init_profile()
+{ # Create /etc/profile.d/guix.sh for better desktop integration
+ cat <<"EOF" > /etc/profile.d/guix.sh
+# _GUIX_PROFILE: `guix pull` profile
+_GUIX_PROFILE="$HOME/.config/guix/current"
+[ -L $_GUIX_PROFILE ] && export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
+
+# GUIX_PROFILE: User's default profile
+GUIX_PROFILE="$HOME/.guix-profile"
+[ -L $GUIX_PROFILE ] || return
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale"
+export GUIX_PROFILE GUIX_LOCPATH
+
+eval `guix package --search-paths=prefix 2> /dev/null`
+
+# set XDG_DATA_DIRS to include Guix installations
+export XDG_DATA_DIRS="$GUIX_PROFILE/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"
+EOF
+}
+
welcome()
{
cat<<"EOF"
@@ -449,6 +469,7 @@ main()
sys_create_build_user
sys_enable_guix_daemon
sys_authorize_build_farms
+ sys_create_init_profile
_msg "${INF}cleaning up ${tmp_path}"
rm -r "${tmp_path}"