summaryrefslogtreecommitdiff
blob: d4852f04171b91b59173c65ce4821b09fdd58694 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# only apply env for login shells, as we'd like fish to
# inherit existing shell environment without overriding it
# using csh env, as it's cleaner and less too parse/strip

if status --is-login
	# since fish supports export via upstream provided function
	# we can source directly, only ommiting $PATH and comments.
	string match -r -v '^(#|setenv (PATH|ROOTPATH) )' < /etc/csh.env | source

	# strip unneded stuff from setenv lines
	# apply paths and cleanup
	if [ "$EUID" = "0" ] ; or [ "$USER" = "root" ]
		string match -r '^setenv ROOTPATH .+' < /etc/csh.env | string replace -ra '\'|\:' ' ' | source
		set -gx PATH /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin $ROOTPATH
		set -e ROOTPATH
	else
		string match -r '^setenv PATH .+' < /etc/csh.env | string replace -ra '\'|\:' ' ' | source
		set -gx PATH /usr/local/bin /usr/bin /bin $PATH
	end

	# re-prepend $fish_user_paths
	__fish_reconstruct_path
end