From 2404216ccd8314888dde1b7ee95f2a7a862901c8 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 30 May 2018 14:54:22 -0700 Subject: [PATCH] Only make path setup permanent from login.sh --- dotfiles/lib/login.sh | 5 +++++ dotfiles/lib/{shellenv => login}/exports.sh | 0 dotfiles/lib/setup_functions.sh | 15 ++++++++++----- dotfiles/lib/shellenv.sh | 21 --------------------- dotfiles/lib/shellpath.sh | 8 +++----- dotfiles/lib/shellrc.sh | 19 +++++++++++++++---- dotfiles/xprofile | 2 +- 7 files changed, 34 insertions(+), 36 deletions(-) create mode 100644 dotfiles/lib/login.sh rename dotfiles/lib/{shellenv => login}/exports.sh (100%) delete mode 100644 dotfiles/lib/shellenv.sh diff --git a/dotfiles/lib/login.sh b/dotfiles/lib/login.sh new file mode 100644 index 00000000..1e7b4bf8 --- /dev/null +++ b/dotfiles/lib/login.sh @@ -0,0 +1,5 @@ +source "$HOME/.lib/shellpath.sh" + +setup_unless_environment_variable_exists ENV_PATH_SETUP_DONE || _setup_path + +source_directory_files "$HOME/.lib/login" diff --git a/dotfiles/lib/shellenv/exports.sh b/dotfiles/lib/login/exports.sh similarity index 100% rename from dotfiles/lib/shellenv/exports.sh rename to dotfiles/lib/login/exports.sh diff --git a/dotfiles/lib/setup_functions.sh b/dotfiles/lib/setup_functions.sh index 395c8bbf..f8b2ccba 100644 --- a/dotfiles/lib/setup_functions.sh +++ b/dotfiles/lib/setup_functions.sh @@ -27,6 +27,16 @@ function _set_python_command { echo "Warning: setting python command to shim" } +function environment_variable_exists { + eval "value=\"\${$1+x}\"" + [ ! -z $value ] +} + +function setup_unless_environment_variable_exists { + environment_variable_exists "$1" || $2 + export "$1=$(date)" +} + function add_to_path { environment_variable_exists _python_command || _set_python_command # We need to get a path to the ACTUAL python command because @@ -75,11 +85,6 @@ function is_osx() { esac } -function environment_variable_exists { - eval "value=\"\${$1+x}\"" - [ ! -z $value ] -} - function source_directory_files { for filename in "$1"/*; do environment_variable_exists SHELL_STARTUP_DEBUG && echo "Sourcing $filename" diff --git a/dotfiles/lib/shellenv.sh b/dotfiles/lib/shellenv.sh deleted file mode 100644 index 01ff199a..00000000 --- a/dotfiles/lib/shellenv.sh +++ /dev/null @@ -1,21 +0,0 @@ -source "$HOME/.lib/shellpath.sh" - -environment_variable_exists ENVIRONMENT_SETUP_DONE || _setup_env - -# TODO(imalison): These need to run every time because of how their -# version managers work. This could cause problems with the situation -# where we want to intentionally override the python/ruby/node -# versions in use in a given shell. - -# TODO: Ruby and node are disabled to speed up shell startup... -# See https://github.com/creationix/nvm/issues/709 for nvm -# _node_setup - -# XXX: these were moved to _setup_env -# _ruby_setup -_python_setup - -source_directory_files "$HOME/.lib/shellenv" - -test -r ~/.customenv.sh && source ~/.customenv.sh -source_if_exists ~/.this-machine-env.sh diff --git a/dotfiles/lib/shellpath.sh b/dotfiles/lib/shellpath.sh index f57e1e44..0815cafa 100644 --- a/dotfiles/lib/shellpath.sh +++ b/dotfiles/lib/shellpath.sh @@ -1,6 +1,6 @@ source "$HOME/.lib/setup_functions.sh" -function _setup_env { +function _setup_path { _path_helper # XXX/TODO: @@ -20,13 +20,11 @@ function _setup_env { _rust_setup _tex_setup - # This makes systemd aware of change to $PATH - run_if_exists systemctl --user import-environment PATH DISPLAY XAUTHORITY HOME - # To ensure that things in ~/.lib/bin take precedence add_to_path "$HOME/.lib/bin" --before - export ENVIRONMENT_SETUP_DONE="$(date)" + # This makes systemd aware of change to $PATH + run_if_exists systemctl --user import-environment PATH DISPLAY XAUTHORITY HOME } function _linux_path_setup { diff --git a/dotfiles/lib/shellrc.sh b/dotfiles/lib/shellrc.sh index ea984f4e..f448ef47 100644 --- a/dotfiles/lib/shellrc.sh +++ b/dotfiles/lib/shellrc.sh @@ -10,11 +10,22 @@ function j() { } environment_variable_exists INSIDE_EMACS && inside_emacs_hook -# XXX: This used to be in shellenv and should be moved back once these -# are faster. -_node_setup -_ruby_setup +# TODO(imalison): These need to run every time because of how their +# version managers work. This could cause problems with the situation +# where we want to intentionally override the python/ruby/node +# versions in use in a given shell. + +# TODO: Ruby and node are disabled to speed up shell startup... +# See https://github.com/creationix/nvm/issues/709 for nvm +# _node_setup + +# XXX: these were moved to _setup_env +# _ruby_setup +# _python_setup +# _node_setup +# _ruby_setup # travis completion # XXX: Disabled to reduce performance impact # [ -f "$HOME/.travis/travis.sh" ] && source "$HOME/.travis/travis.sh" + diff --git a/dotfiles/xprofile b/dotfiles/xprofile index c4c781fa..95704b81 100644 --- a/dotfiles/xprofile +++ b/dotfiles/xprofile @@ -1,7 +1,7 @@ # -*- mode: sh; -*- # If there are issues with path, check /etc/profile for hard overrides of PATH. -source "$HOME/.lib/shellenv.sh" +source "$HOME/.lib/login.sh" # XXX: prevents https://github.com/xmonad/xmonad/issues/86 from affecting startup rm -f ~/.xmonad/xmonad.state load_xkb_map.sh