Rewrite bash dotfiles

This commit is contained in:
Henrik Lissner 2015-12-20 23:39:37 -05:00
parent 8291580452
commit ed8a957f56
4 changed files with 56 additions and 115 deletions

View file

@ -1,66 +1 @@
#!/bin/bash load aliases
alias q='exit'
alias clr='clear'
alias catn='cat -n' # cat + line numbers
# Allow sudo with aliases
alias sudo='sudo '
alias ls='ls -G'
alias l='ls -o'
alias la='ls -AGFoh'
# Command fixes
alias ln="${aliases[ln]:-ln} -v" # verbose ln
alias wget='wget -c' # Resume download if possible
alias rsyncd='rsync -va --delete' # Hard sync two directories
# Shortcut for git
is-callable hub && alias git='hub'
g() { [ $# -eq 0 ] && git status --short || git $* }
alias gi='git init'
alias ga='git add'
alias gap='git add --patch'
alias gc='git commit --verbose'
alias gcm='git commit --verbose -m'
alias gco='git checkout'
alias gcl='git clone'
alias gp='git push'
alias gpl='git pull'
alias gb='git branch'
alias gt='git tag'
alias gs='git status --short'
alias gS='git status'
alias gr='git reset "HEAD^"'
alias gd='git diff'
if is-callable 'tmux'; then
alias t='tmux'
# Start new session or create a grouped session so I'm not simply watching
# the same session in both windows.
alias ta='tmux new -s $(hostname) || tmux new -t $(hostname) -s $(hostname)-2 || tmux attach -t "io-2"'
function ts {
tmux send-keys "$*"
}
alias tls='tmux ls'
# New instance attached to old session
alias tn='tmux new-session -t "x"'
fi
alias va='vagrant'
alias rk='rake'
alias rkg='rake -g'
# Interpreters
alias rb='ruby'
alias rbe='rbenv'
alias b='bundle'
alias be='bundle exec'
alias bi='bundle install --path vendor'
alias py='python'
alias pye='pyenv'
alias pyi='ipython'

View file

@ -15,14 +15,42 @@ shopt -s autocd 2>/dev/null
shopt -s globstar 2>/dev/null shopt -s globstar 2>/dev/null
#### Exports ################################################
# Make vim the default editor.
export EDITOR='vim';
# Enable persistent REPL history for `node`.
export NODE_REPL_HISTORY=~/.node_history;
# Allow 32³ entries; the default is 1000.
export NODE_REPL_HISTORY_SIZE='32768';
# Use sloppy mode by default, matching web browsers.
export NODE_REPL_MODE='sloppy';
# Make Python use UTF-8 encoding for output to stdin, stdout, and stderr.
export PYTHONIOENCODING='UTF-8';
# Increase Bash history size. Allow 32³ entries; the default is 500.
export HISTSIZE='32768';
export HISTFILESIZE="${HISTSIZE}";
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
# Prefer US English and use UTF-8.
export LANG='en_US.UTF-8';
export LC_ALL='en_US.UTF-8';
# Highlight section titles in manual pages.
export LESS_TERMCAP_md="${yellow}";
# Dont clear the screen after quitting a manual page.
export MANPAGER='less -X';
#### Completion ############################################# #### Completion #############################################
# Add tab completion for many Bash commands # Add tab completion for many Bash commands
if is-callable "brew" && [ -f "$(brew --prefix)/etc/bash_completion" ]; then [ -f /etc/bash_completion ] && source /etc/bash_completion
source "$(brew --prefix)/etc/bash_completion";
elif [ -f /etc/bash_completion ]; then
source /etc/bash_completion;
fi
# Enable tab completion for `g` by marking it as an alias for `git` # Enable tab completion for `g` by marking it as an alias for `git`
if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then

View file

@ -1,35 +0,0 @@
#!/bin/bash
declare -a paths_prepend=(
"/usr/local/bin"
"/usr/local/sbin"
"$HOME/.dotfiles/bin"
"$HOME/.rbenv/shims"
"$HOME/.pyenv/shims"
"$HOME/.rbenv/bin"
"$HOME/.pyenv/bin"
"$(brew --prefix coreutils)/libexec/gnubin"
)
declare -a paths_append=(
# ...
)
# Prepend directories to PATH
for index in ${!dirs_to_prepend[*]}; do
if [ -d ${dirs_to_prepend[$index]} ]; then
# If these directories exist, then prepend them to existing PATH
PATH="${dirs_to_prepend[$index]}:$PATH"
fi
done
# Append directories to PATH
for index in ${!dirs_to_append[*]}; do
if [ -d ${dirs_to_append[$index]} ]; then
# If these bins exist, then append them to existing PATH
PATH="$PATH:${dirs_to_append[$index]}"
fi
done
unset paths_prepend paths_append
export PATH

View file

@ -1,7 +1,3 @@
function is-callable {
which "$1" > /dev/null
}
# set 256 color profile where possible # set 256 color profile where possible
if [[ $COLORTERM == gnome-* && $TERM == xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then if [[ $COLORTERM == gnome-* && $TERM == xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
export TERM=gnome-256color export TERM=gnome-256color
@ -10,9 +6,26 @@ elif infocmp xterm-256color >/dev/null 2>&1; then
fi fi
#### Other Settings ######################################### ## Bash rcfiles ###########################
source ~/.bash/path source $HOME/.dotfiles/.common.sh
source ~/.bash/aliases
source ~/.bash/config declare -a paths=(
source ~/.bash/prompt "$DOTFILES/{bin,scripts}"
"$HOME/.{rb,py}env/{shims,bin}"
"/usr/local/{bin,sbin}"
)
[[ "$OSTYPE" == "darwin"* ]] && paths+="$(brew --prefix coreutils)/libexec/gnubin"
for index in ${!paths[*]}; do
[ -d ${paths[$index]} ] && PATH="${paths[$index]}:$PATH"
done
unset paths
export PATH
## Bash rcfiles ###########################
load bash/aliases # ~/.bash/aliases
load bash/config # ~/.bash/config
iload bash/prompt # ~/.bash/prompt