Merge branch 'master' of github.com:IvanMalison/dotfiles

This commit is contained in:
Ivan Malison 2018-05-31 12:25:24 -07:00
commit bb9f3227a0
No known key found for this signature in database
GPG Key ID: 62530EFBE99DC2F8
11 changed files with 67 additions and 71 deletions

View File

@ -1 +1 @@
source ~/.bashrc source ~/.lib/login.sh

6
dotfiles/lib/login.sh Normal file
View File

@ -0,0 +1,6 @@
source "$HOME/.lib/shellpath.sh"
# XXX: This is duplicated from env with a different var to avoid issues with /etc/profile
command_exists python && setup_unless_environment_variable_exists LOGIN_PATH_SETUP_DONE _setup_path
source_directory_files "$HOME/.lib/login"

View File

@ -0,0 +1,4 @@
source "$HOME/.lib/shellpath.sh"
command_exists python && setup_unless_environment_variable_exists NIX_PATH_SETUP_DONE _setup_path

View File

@ -14,25 +14,17 @@ function shell_contains () {
return 1 return 1
} }
function _set_python_command { function environment_variable_exists {
# See comment in add_to_path about why this is necessary eval "value=\"\${$1+x}\""
if command_exists pyenv; [ ! -z $value ]
then }
_python_command="$(pyenv which python)"
else function setup_unless_environment_variable_exists {
which pyenv environment_variable_exists "$1" || { $2 && export "$1=$(date)"; }
_python_command="$(which python)"
fi
shell_contains "$_python_command" "shim" && \
echo "Warning: setting python command to shim"
} }
function add_to_path { function add_to_path {
environment_variable_exists _python_command || _set_python_command eval "$(python $HOME/.lib/python/shell_path.py --include-assignment "$@")"
# We need to get a path to the ACTUAL python command because
# pyenv alters PATH before actually executing python, which ends
# up changing PATH in a way that is not desireable.
eval "$($_python_command $HOME/.lib/python/shell_path.py --include-assignment "$@")"
} }
# Taken from http://www.unix.com/shell-programming-and-scripting/27932-how-know-linux-distribution-i-am-using.html # Taken from http://www.unix.com/shell-programming-and-scripting/27932-how-know-linux-distribution-i-am-using.html
@ -55,6 +47,11 @@ function get_linux_distro {
[ -n "$dist" ] && echo "$dist" && return 0 [ -n "$dist" ] && echo "$dist" && return 0
fi fi
if [ -r /etc/os-release ]; then
dist=$(grep 'ID=' /etc/os-release | sed 's/ID=//' | head -1)
[ -n "$dist" ] && echo "$dist" && return 0
fi
dist=$(find /etc/ -maxdepth 1 -name '*release' 2> /dev/null | sed 's/\/etc\///' | sed 's/-release//' | head -1) dist=$(find /etc/ -maxdepth 1 -name '*release' 2> /dev/null | sed 's/\/etc\///' | sed 's/-release//' | head -1)
[ -n "$dist" ] && echo "$dist" && return 0 [ -n "$dist" ] && echo "$dist" && return 0
@ -65,19 +62,18 @@ function get_linux_distro {
function is_osx() { function is_osx() {
if command_exists uname; then
case `uname` in case `uname` in
'Darwin') 'Darwin')
return 0 return 0;
;; ;;
*) *)
return 1; return 1;
;; ;;
esac esac
} else
return 1
function environment_variable_exists { fi
eval "value=\"\${$1+x}\""
[ ! -z $value ]
} }
function source_directory_files { function source_directory_files {

View File

@ -1,21 +1,12 @@
source "$HOME/.lib/shellpath.sh" source "$HOME/.lib/shellpath.sh"
environment_variable_exists ENVIRONMENT_SETUP_DONE || _setup_env # XXX: This PATH setup var is only actually set in login.sh which is definitely
# strange. The reason for this is that because env runs BEFORE profile, things
# in places like /etc/profile can actually clobber the path setup that we do.
# TODO(imalison): These need to run every time because of how their # Disbled setup here. Doing it in profile instead
# version managers work. This could cause problems with the situation if command_exists python; then
# where we want to intentionally override the python/ruby/node environment_variable_exists LOGIN_PATH_SETUP_DONE || setup_unless_environment_variable_exists ENV_PATH_SETUP_DONE _setup_path
# versions in use in a given shell. fi
# 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" source_directory_files "$HOME/.lib/shellenv"
test -r ~/.customenv.sh && source ~/.customenv.sh
source_if_exists ~/.this-machine-env.sh

View File

@ -1,12 +1,8 @@
source "$HOME/.lib/setup_functions.sh" source "$HOME/.lib/setup_functions.sh"
function _setup_env { function _setup_path {
_path_helper _path_helper
# XXX/TODO:
# This is in shellenv.sh now
_python_setup
add_to_path "$HOME/.lib/bin" "$HOME/.local/bin" "$HOME/bin" --before add_to_path "$HOME/.lib/bin" "$HOME/.local/bin" "$HOME/bin" --before
add_to_path "/usr/local/sbin" "/usr/local/bin" "/usr/bin" --after add_to_path "/usr/local/sbin" "/usr/local/bin" "/usr/bin" --after
_ruby_setup _ruby_setup
@ -16,17 +12,16 @@ function _setup_env {
_haskell_setup _haskell_setup
_java_setup _java_setup
_go_setup _go_setup
_python_setup
_racket_setup _racket_setup
_rust_setup _rust_setup
_tex_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 # To ensure that things in ~/.lib/bin take precedence
add_to_path "$HOME/.lib/bin" --before 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 { function _linux_path_setup {
@ -51,17 +46,7 @@ function _osx_path_setup {
} }
function _python_setup { function _python_setup {
export PYENV_ROOT="/usr/local/var/pyenv"
if which pyenv > /dev/null; then
eval "$(pyenv init - --no-rehash)"
else
echo "WARNING: pyenv is not installed on this machine and python will likely not function correctly"
fi
add_to_path "$HOME/.lib/python" --after add_to_path "$HOME/.lib/python" --after
# if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
add_to_path "$HOME/.lib/python" --path-var 'PYTHONPATH' add_to_path "$HOME/.lib/python" --path-var 'PYTHONPATH'
} }

View File

@ -10,11 +10,22 @@ function j() {
} }
environment_variable_exists INSIDE_EMACS && inside_emacs_hook environment_variable_exists INSIDE_EMACS && inside_emacs_hook
# XXX: This used to be in shellenv and should be moved back once these # TODO(imalison): These need to run every time because of how their
# are faster. # version managers work. This could cause problems with the situation
_node_setup # where we want to intentionally override the python/ruby/node
_ruby_setup # 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 # travis completion
# XXX: Disabled to reduce performance impact # XXX: Disabled to reduce performance impact
# [ -f "$HOME/.travis/travis.sh" ] && source "$HOME/.travis/travis.sh" # [ -f "$HOME/.travis/travis.sh" ] && source "$HOME/.travis/travis.sh"

View File

@ -1,7 +1,9 @@
# -*- mode: sh; -*- # -*- mode: sh; -*-
# If there are issues with path, check /etc/profile for hard overrides of PATH. # If there are issues with path, check /etc/profile for hard overrides of PATH.
source "$HOME/.lib/shellenv.sh" . "$HOME/.lib/login.sh"
# XXX: prevents https://github.com/xmonad/xmonad/issues/86 from affecting startup # XXX: prevents https://github.com/xmonad/xmonad/issues/86 from affecting startup
rm -f ~/.xmonad/xmonad.state rm -f ~/.xmonad/xmonad.state
load_xkb_map.sh load_xkb_map.sh

1
dotfiles/zprofile Normal file
View File

@ -0,0 +1 @@
source ~/.lib/login.sh

View File

@ -5,4 +5,4 @@ export THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export DOTFILES_DIR="$(readlink -f $THIS_DIR/dotfiles)" export DOTFILES_DIR="$(readlink -f $THIS_DIR/dotfiles)"
echo $DOTFILES_DIR echo $DOTFILES_DIR
rcup -d $DOTFILES_DIR -S "emacs.d" -S "config/taffybar" -S "config/xmonad" -S "config/xmonad/taffybar" rcup -d $DOTFILES_DIR -S "emacs.d" -S "config/taffybar" -S "config/xmonad" -S "config/xmonad/taffybar" -S "lib"