Merge branch 'master' of github.com:IvanMalison/dotfiles
This commit is contained in:
commit
bb9f3227a0
@ -1 +1 @@
|
||||
source ~/.bashrc
|
||||
source ~/.lib/login.sh
|
||||
|
6
dotfiles/lib/login.sh
Normal file
6
dotfiles/lib/login.sh
Normal 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"
|
4
dotfiles/lib/nix_login.sh
Normal file
4
dotfiles/lib/nix_login.sh
Normal file
@ -0,0 +1,4 @@
|
||||
source "$HOME/.lib/shellpath.sh"
|
||||
|
||||
command_exists python && setup_unless_environment_variable_exists NIX_PATH_SETUP_DONE _setup_path
|
||||
|
@ -14,25 +14,17 @@ function shell_contains () {
|
||||
return 1
|
||||
}
|
||||
|
||||
function _set_python_command {
|
||||
# See comment in add_to_path about why this is necessary
|
||||
if command_exists pyenv;
|
||||
then
|
||||
_python_command="$(pyenv which python)"
|
||||
else
|
||||
which pyenv
|
||||
_python_command="$(which python)"
|
||||
fi
|
||||
shell_contains "$_python_command" "shim" && \
|
||||
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
|
||||
# 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 "$@")"
|
||||
eval "$(python $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
|
||||
@ -55,6 +47,11 @@ function get_linux_distro {
|
||||
[ -n "$dist" ] && echo "$dist" && return 0
|
||||
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)
|
||||
[ -n "$dist" ] && echo "$dist" && return 0
|
||||
|
||||
@ -65,19 +62,18 @@ function get_linux_distro {
|
||||
|
||||
|
||||
function is_osx() {
|
||||
case `uname` in
|
||||
'Darwin')
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
return 1;
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function environment_variable_exists {
|
||||
eval "value=\"\${$1+x}\""
|
||||
[ ! -z $value ]
|
||||
if command_exists uname; then
|
||||
case `uname` in
|
||||
'Darwin')
|
||||
return 0;
|
||||
;;
|
||||
*)
|
||||
return 1;
|
||||
;;
|
||||
esac
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function source_directory_files {
|
||||
|
@ -1,21 +1,12 @@
|
||||
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
|
||||
# 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
|
||||
# Disbled setup here. Doing it in profile instead
|
||||
if command_exists python; then
|
||||
environment_variable_exists LOGIN_PATH_SETUP_DONE || setup_unless_environment_variable_exists ENV_PATH_SETUP_DONE _setup_path
|
||||
fi
|
||||
|
||||
source_directory_files "$HOME/.lib/shellenv"
|
||||
|
||||
test -r ~/.customenv.sh && source ~/.customenv.sh
|
||||
source_if_exists ~/.this-machine-env.sh
|
||||
|
@ -1,12 +1,8 @@
|
||||
source "$HOME/.lib/setup_functions.sh"
|
||||
|
||||
function _setup_env {
|
||||
function _setup_path {
|
||||
_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 "/usr/local/sbin" "/usr/local/bin" "/usr/bin" --after
|
||||
_ruby_setup
|
||||
@ -16,17 +12,16 @@ function _setup_env {
|
||||
_haskell_setup
|
||||
_java_setup
|
||||
_go_setup
|
||||
_python_setup
|
||||
_racket_setup
|
||||
_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 {
|
||||
@ -51,17 +46,7 @@ function _osx_path_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
|
||||
# if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
|
||||
|
||||
add_to_path "$HOME/.lib/python" --path-var 'PYTHONPATH'
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -1,7 +1,9 @@
|
||||
# -*- mode: sh; -*-
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
rm -f ~/.xmonad/xmonad.state
|
||||
load_xkb_map.sh
|
||||
|
1
dotfiles/zprofile
Normal file
1
dotfiles/zprofile
Normal file
@ -0,0 +1 @@
|
||||
source ~/.lib/login.sh
|
@ -5,4 +5,4 @@ export THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
export DOTFILES_DIR="$(readlink -f $THIS_DIR/dotfiles)"
|
||||
|
||||
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"
|
||||
|
Loading…
Reference in New Issue
Block a user