-
Notifications
You must be signed in to change notification settings - Fork 0
/
.bashrc
136 lines (113 loc) · 2.84 KB
/
.bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Arun Lakshmanan
# aliases {{{
alias ls='colorls --sd'
alias ll='colorls -lA --sd'
alias l='colorls -alt'
alias sudo='sudo '
alias tlmgr='env PATH="$PATH" tlmgr'
alias vi="nvim"
alias vim="nvim"
# }}}
# colors {{{
# Make terminal 256 colors
export TERM=xterm-256color
ORANGE="\[$(tput setaf 214)\]"
RED="\[$(tput setaf 196)\]"
ROSE="\[$(tput setaf 137)\]"
TARDIS="\[$(tput setaf 39)\]"
BOLD="\[$(tput bold)\]"
OFFBOLD="\[$(tput rmso)\]"
RESET="\[$(tput sgr0)\]"
# }}}
# git prompt {{{
parse_git_branch() {
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi
git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
echo "($git_branch)"
}
git_star() {
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi
git_status="$(git status | grep "nothing to commit" 2> /dev/null)"
git_status_2="$(git status | grep "nothing added to commit" 2> /dev/null)"
if [ -z "$git_status" ] && [ -z "$git_status_2" ]; then
echo -e "\001$(tput setaf 196)\002*"
fi
}
export PS1="$ROSE\$(git_star)\$(parse_git_branch)${TARDIS}\\u:${ORANGE}\\W\$${RESET} "
# }}}
# colorls {{{
source $(dirname $(gem which colorls))/tab_complete.sh
# }}}
# texlive {{{
export PATH=/usr/local/texlive/2017/bin/x86_64-linux:$PATH
export INFOPATH=$INFOPATH:/usr/local/texlive/2017/texmf-dist/doc/info
export MANPATH=$MANPATH:/usr/local/texlive/2017/texmf-dist/doc/man
# }}}
# coreutils {{{
OSTYPE="$(uname -s)"
if [ "$OSTYPE" = "Darwin" ]; then
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
fi
# }}}
# fzf {{{
export FZF_DEFAULT_COMMAND='ag -g ""'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
# }}}
# useful functions {{{
function update_apt {
echo "Updating apt"
sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove
}
function update_brew {
echo "Updating brew"
brew update
brew upgrade
}
function update_gems {
echo "Updating gems"
sudo -H gem clean
sudo -H gem update
}
# find out which user installed packages need updating (except pip: https://github.com/pypa/pip/issues/5599)
function update_pip {
echo "Updating pip"
PIP_PKG_FILE=/tmp/pip_pkgs
pip list --user --outdated --format=freeze | grep -v 'pip' > $PIP_PKG_FILE
if [ -s $PIP_PKG_FILE ]; then
pip install --user -r $PIP_PKG_FILE --upgrade
else
echo "Already up-to-date"
fi
rm -f $PIP_PKG_FILE
}
function update_nvim {
echo "Updating nvim"
nvim +PlugClean +qall +silent
nvim +PlugUpdate +qall +silent
nvim +PlugUpgrade +qall +silent
}
function update_tmux {
echo "Updating tmux"
~/.tmux/plugins/tpm/bin/update_plugins all
}
function update {
if [ "$OSTYPE" = "Darwin" ]; then
update_brew
else
update_apt
fi
update_gems
update_pip
update_nvim
update_tmux
}
# }}}
# vim:foldmethod=marker:foldlevel=0