2020-11-19 11:16:17 -08:00
|
|
|
function _maybe_set --description "Either appends or prepends to a variable if the file or directory exists and isn't already present"
|
|
|
|
# Replicate some of the `set` args
|
|
|
|
argparse 'a/append' 'p/prepend' 'x/export' 'g/global' -- $argv
|
|
|
|
if [ (count $argv) -ne 2 ]
|
|
|
|
echo "_maybe_set Requires exactly two arguments"
|
|
|
|
return 1
|
|
|
|
end
|
|
|
|
set -l var_name "$argv[1]"
|
|
|
|
set -l existing_val (eval 'echo $'(echo $var_name))
|
|
|
|
set -l new_value "$argv[2]"
|
|
|
|
if not contains -- "$new_value" "$existing_val" ;and test -e "$new_value"
|
|
|
|
set $_flag_append $_flag_prepend $_flag_export $_flag_global $var_name $new_value
|
|
|
|
end
|
|
|
|
end
|
2015-06-05 12:16:12 -07:00
|
|
|
|
2020-11-19 11:16:17 -08:00
|
|
|
set det_os "unknown"
|
2015-06-05 12:16:12 -07:00
|
|
|
switch (uname)
|
|
|
|
case "Darwin"
|
|
|
|
set det_os "mac"
|
|
|
|
case "Linux"
|
|
|
|
set det_os "linux"
|
|
|
|
case '*'
|
|
|
|
set det_os "unknown"
|
|
|
|
end
|
|
|
|
|
|
|
|
# opt directory
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -p PATH /opt/local/sbin
|
|
|
|
_maybe_set -p PATH /opt/local/bin
|
2021-12-08 10:04:39 -08:00
|
|
|
if test -e "/opt/local/lib"
|
|
|
|
set -gx --append LDFLAGS "-L/opt/local/lib"
|
|
|
|
end
|
|
|
|
if test -e "/opt/local/include"
|
|
|
|
set -gx --append CFLAGS "-I/opt/local/include"
|
|
|
|
end
|
2015-06-12 17:34:49 -07:00
|
|
|
|
2020-11-19 11:16:17 -08:00
|
|
|
# Set python paths
|
|
|
|
if [ $det_os = "mac" ]
|
2015-06-12 17:34:49 -07:00
|
|
|
# Fix Python path on OSX to avoid considering System extras over newer versions
|
2019-10-28 18:15:00 -07:00
|
|
|
# Local
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -p PATH "$HOME/Library/Python/2.7/bin"
|
2023-01-25 16:01:15 -08:00
|
|
|
_maybe_set -p PATH "$HOME/Library/Python/3.8/bin"
|
2021-10-25 13:57:27 -07:00
|
|
|
_maybe_set -p PATH "$HOME/Library/Python/3.9/bin"
|
2023-01-25 16:01:15 -08:00
|
|
|
_maybe_set -p PATH "$HOME/Library/Python/3.10/bin"
|
2023-10-31 08:58:30 -07:00
|
|
|
_maybe_set -p PATH "$HOME/Library/Python/3.11/bin"
|
2019-11-13 17:23:15 -08:00
|
|
|
# set -gx PYTHONPATH $HOME/Library/Python/2.7/lib/python/site-packages:$PYTHONPATH
|
2019-10-28 18:15:00 -07:00
|
|
|
# Macports
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -a PATH /opt/local/Library/Frameworks/Python.framework/Versions/Current/bin
|
2019-10-28 18:15:00 -07:00
|
|
|
# set -gx PYTHONPATH /opt/local/Library/Frameworks/Python.framework/Versions/Current/lib $PYTHONPATH
|
|
|
|
# set -gx PYTHONPATH /opt/local/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages /Library/Python/2.7/site-packages $PYTHONPATH
|
2015-06-05 12:16:12 -07:00
|
|
|
end
|
|
|
|
|
2019-10-28 18:15:40 -07:00
|
|
|
# NPM paths
|
2021-07-25 18:38:57 -07:00
|
|
|
if command -q npm
|
2020-02-21 10:57:11 -08:00
|
|
|
set npm_path "$HOME/.npm/bin"
|
|
|
|
if [ ! -d "$npm_path" ]
|
|
|
|
# It's more robust to use the subshell, but far slower
|
|
|
|
set npm_path (npm bin -g 2> /dev/null)
|
|
|
|
end
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -a PATH "$npm_path"
|
2019-10-28 18:15:40 -07:00
|
|
|
end
|
|
|
|
|
2021-12-14 18:06:30 -08:00
|
|
|
# Add luarocks paths
|
|
|
|
if command -q luarocks
|
|
|
|
eval (luarocks path | sed "s/export/set -gx/;s/=/ /")
|
|
|
|
_maybe_set -a PATH "$HOME/.luarocks/bin"
|
|
|
|
end
|
|
|
|
|
2020-11-19 11:16:17 -08:00
|
|
|
# Add rust cargo path
|
|
|
|
_maybe_set -p PATH "$HOME/.cargo/bin"
|
2018-02-01 17:11:41 -08:00
|
|
|
|
2018-08-03 19:14:41 -07:00
|
|
|
# Golang paths
|
|
|
|
set -gx GOPATH $HOME/workspace/go_path
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -p PATH "$GOPATH/bin"
|
2021-07-25 18:43:12 -07:00
|
|
|
_maybe_set -p PATH "/usr/local/go/bin"
|
2015-08-26 14:29:51 -07:00
|
|
|
|
2016-02-04 10:33:08 -08:00
|
|
|
# Android paths
|
2020-11-19 11:16:17 -08:00
|
|
|
if [ $det_os = "linux" ]
|
|
|
|
set -gx ANDROID_HOME "$HOME/workspace/adt-bundle-linux/sdk"
|
|
|
|
else if [ $det_os = "mac" ]
|
2024-06-24 11:51:47 -07:00
|
|
|
set -gx ANDROID_HOME "$HOME/Library/Android/sdk"
|
|
|
|
end
|
|
|
|
_maybe_set -a PATH "$ANDROID_HOME/tools"
|
|
|
|
_maybe_set -a PATH "$ANDROID_HOME/tools/bin"
|
|
|
|
_maybe_set -a PATH "$ANDROID_HOME/platform-tools"
|
|
|
|
|
|
|
|
# Java paths
|
2024-11-26 15:17:19 -08:00
|
|
|
if type -q /usr/libexec/java_home && /usr/libexec/java_home &> /dev/null
|
2024-06-24 11:51:47 -07:00
|
|
|
set -gx JAVA_HOME (/usr/libexec/java_home)
|
2017-03-23 15:42:54 -07:00
|
|
|
end
|
2015-06-05 12:16:12 -07:00
|
|
|
|
2017-11-16 10:22:02 -08:00
|
|
|
# Ruby paths
|
2019-06-12 11:06:33 -07:00
|
|
|
if type -q rbenv ; and status --is-interactive
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -a PATH "$HOME/.rbenv/shims"
|
2019-06-12 11:06:33 -07:00
|
|
|
else if [ -d "$HOME/.rvm" ]
|
2020-11-19 11:16:17 -08:00
|
|
|
_maybe_set -a PATH "$HOME/.rvm/bin"
|
2019-06-12 11:06:33 -07:00
|
|
|
source "$HOME/.rvm/scripts/extras/rvm.fish"
|
2017-11-16 10:22:02 -08:00
|
|
|
end
|
|
|
|
|
2020-11-19 11:16:17 -08:00
|
|
|
# Home paths to take final precedent
|
|
|
|
_maybe_set -p PATH "$HOME/.local/bin"
|
|
|
|
_maybe_set -p PATH "$HOME/bin"
|