summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-shells/fish/Manifest1
-rw-r--r--app-shells/fish/files/profile-env.fish34
-rw-r--r--app-shells/fish/fish-2.5.0.ebuild (renamed from app-shells/fish/fish-2.4.0-r1.ebuild)0
3 files changed, 22 insertions, 13 deletions
diff --git a/app-shells/fish/Manifest b/app-shells/fish/Manifest
index bc12de2ee976..858f28c23684 100644
--- a/app-shells/fish/Manifest
+++ b/app-shells/fish/Manifest
@@ -1 +1,2 @@
DIST fish-2.4.0.tar.gz 3455874 SHA256 06bbb2323360439c4044da762d114ec1aa1aba265cec71c0543e6a0095c9efc5 SHA512 b27a2291c284fda7a12b3cd5dcba8dfcbf2738f50de40d9aac1500afa3bd98be04b4f67d7e6d3bb2f808c11a8c2dd6b1b5cc2dfe3e8e0e7d1bc88f8d8994d57b WHIRLPOOL abb9c31237a33553b25920fe3284f4ca90941aed2b8f1ec4b69fdb4231f7b2585f0292bc647ffe3acf88f6b01ac61931f615fa9a56ede35a8182e3a69aa11861
+DIST fish-2.5.0.tar.gz 3496831 SHA256 f8c0edadca2de379ccf305aeace660a9255fa2180c72e85e97705a24c256b2a5 SHA512 6d94bb70a5f1cefaada4d10ac845992f87c9bfc8c253f38bdfcc3a573a35503d825c9487d2ce8ef3819713594ab7b54ebf6c89fe3362c7010c63dbefc99b424d WHIRLPOOL a16d5f75e95573f2b766527fb124d99083a7ab84522a4826cd5b3aaf3a73ae6728f30defbd0598698b496f279f686eddcb4e81779767e89888037abe0b908849
diff --git a/app-shells/fish/files/profile-env.fish b/app-shells/fish/files/profile-env.fish
index 21a918adba8f..d4852f04171b 100644
--- a/app-shells/fish/files/profile-env.fish
+++ b/app-shells/fish/files/profile-env.fish
@@ -1,15 +1,23 @@
-# 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
+# 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
-# 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
+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
diff --git a/app-shells/fish/fish-2.4.0-r1.ebuild b/app-shells/fish/fish-2.5.0.ebuild
index 0d2402bcd745..0d2402bcd745 100644
--- a/app-shells/fish/fish-2.4.0-r1.ebuild
+++ b/app-shells/fish/fish-2.5.0.ebuild