-# 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
+# since fish supports export via upstream provided function
+# we can source directly, only ommiting $PATH and comments.
+grep -Ev "^(#|export (PATH|ROOTPATH)=)" /etc/profile.env | source
-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
+# strip unneded stuff from bash export lines
+# apply paths and cleanup
+if [ "$EUID" = "0" ] ; or [ "$USER" = "root" ]
+ set _rootpath (grep -o " ROOTPATH='.*'" /etc/profile.env | sed "s@.*'\(.*\)'@\1@;s@:@\n@g")
+ set -xg PATH /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin $_rootpath
+ set -e _rootpath
+else
+ set _userpath (grep -o " PATH='.*'" /etc/profile.env | sed "s@.*'\(.*\)'@\1@;s@:@\n@g")
+ set -xg PATH /usr/local/bin /usr/bin /bin $_userpath
+ set -e _userpath
end