forked from colonelpanic/dotfiles
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
|
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 {
|
||||||
|
@ -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
|
|
||||||
|
@ -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'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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
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)"
|
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"
|
||||||
|
Loading…
Reference in New Issue
Block a user