blob: 658c65bf5cc6038400e005841b4b6332a35b3eb4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#!/bin/sh
# shellcheck disable=2046,1090
# Most of this script is a user scoped version of /etc/profile
# Append "$1" to $PATH when not already in.
# This function API is accessible to scripts in $XDG_CONFIG_HOME/profile.d
append_path() {
case ":$PATH:" in
*:"$1":*) ;;
*)
PATH="${PATH:+$PATH:}$1"
;;
esac
}
# Use systemd-environment-d-generator(8) to generate environment, and export those variables
# NOTE: To avoid overriding PATH, we rename it and append it separately
#
# See: https://wiki.archlinux.org/title/Environment_variables#Per_Wayland_session
for gen in /usr/lib/systemd/user-environment-generators/*; do
if [ -e "$gen" ]; then
export $($gen | sed 's/^PATH=/GEN_PATH=/' | xargs)
append_path "$GEN_PATH"
unset GEN_PATH
fi
done
append_path "$HOME/.local/bin"
# Force PATH to be environment
export PATH
# Load profiles from $XDG_CONFIG_HOME/profile.d
if test -d "$XDG_CONFIG_HOME"/profile.d/; then
for profile in "$XDG_CONFIG_HOME"/profile.d/*.sh; do
test -r "$profile" && . "$profile"
done
unset profile
fi
# Unload our profile API functions
unset -f append_path
# Manually parse and export XDG user directories. xdg-user-dirs-update is disabled in
# $XDG_CONFIG_HOME/user-dirs.conf due to how it handles non-existent directories
#
# See: https://wiki.archlinux.org/title/XDG_user_directories
if [ -e "$HOME/.config/user-dirs.dirs" ]; then
export $(xargs <"$HOME/.config/user-dirs.dirs")
fi
|