-
Notifications
You must be signed in to change notification settings - Fork 2
/
.bashrc.local
241 lines (218 loc) · 7.43 KB
/
.bashrc.local
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# Check for an interactive session
[ -z "$PS1" ] && return
# PATH config
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$HOME/.dotfiles/scripts
# Includes
if [ -f /usr/bin/virtualenvwrapper_lazy.sh ] ; then source /usr/bin/virtualenvwrapper_lazy.sh ; fi
if [ -f /usr/share/git/completion/git-completion.bash ] ; then source /usr/share/git/completion/git-completion.bash ; fi
if [ -f /usr/share/git/git-prompt.sh ] ; then source /usr/share/git/git-prompt.sh ; fi
if [ -f /usr/share/nvm/init-nvm.sh ] ; then
source /usr/share/nvm/init-nvm.sh
nvm use default > /dev/null
fi
# Function to check whether a command exists or not
command_exists() { command -v "$1" >/dev/null 2>&1 ; }
# Environment variables
export EDITOR="nvim" # Use vim as default editor
export LC_CTYPE="en_US.UTF-8" # Fix some locale issues
export LESSHISTFILE="-" # Don't create a less history file
export HISTSIZE=100000
export HISTFILESIZE=100000
export HISTCONTROL=ignoreboth
export RUST_SOURCE=/home/danilo/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust
export RIPGREP_CONFIG_PATH=/home/danilo/.dotfiles/.ripgreprc
# Ansible
export ANSIBLE_NOCOWS=1
# Colors
export GREP_OPTIONS="--color=auto"
export GREP_COLOR="mt=1;32"
alias grep="$(which grep) $GREP_OPTIONS"
unset GREP_OPTIONS
export LESS_TERMCAP_mb=$'\e[1;37m'
export LESS_TERMCAP_md=$'\e[1;37m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[1;47;30m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[0;32m'
function env() { exec /usr/bin/env "$@" | grep -v ^LESS_TERMCAP_ ; }
# Disable freezing with Ctrl-S
stty -ixon
# Aliases
alias ..="cd .."
alias ...="cd ../.."
alias vim="vim -p"
alias ls="ls --color=auto"
alias o="xdg-open"
alias please="sudo"
alias rtfm="man"
alias fgfg="fg"
alias pyclean="find . -type f -iname '*.pyc' -delete && find . -type d -name __pycache__ -delete"
alias kadse="echo -e ' /\_/\ \n >^.^<.---.\n _'\"'\"'-\`-'\"'\"' )\ \n (6--\ |--\ (\`.\`-.\n --'\"'\"' --'\"'\"' \`\`-'\"'\"''"
alias pg='sudo systemctl start postgresql'
alias rs='./manage.py runserver'
alias sp='./manage.py shell_plus'
alias cel='celery -A config worker -l info -Q celery,high_prio -O fair'
alias wn1='watch -n 1'
alias irc='ssh -p 2223 -t dbrgn.ch "screen -d -r irc"'
alias vimrc='vim ~/.vimrc'
alias hl='rg --passthru'
alias strip-exif='exiftool -overwrite_original -SerialNumber= -LensSerialNumber= -InternalSerialNumber= -GpsLatitude= -GpsLongitude='
function shorturl() { curl --data "url=$@" https://s.dbrgn.ch/; }
function urlfile() { chromium `awk -F= '/URL/{ print $2 }' "$1"`; }
function uptmp() { scp -P 2223 -C "$1" dbrgn.ch:/srv/www/dbrgn/tmp/ && echo -n "https://tmp.dbrgn.ch/$1" | tee >(wl-copy -p) | tee >(wl-copy) && echo ""; }
function clone() { git clone git@github.com:${1}.git; }
function aur-clone() { git clone ssh://aur@aur.archlinux.org/${1}.git; }
function aur-shellcheck() { shellcheck PKGBUILD -e SC2154,SC2034,SC2164 -s bash; }
function add-remote() {
remote_url="$(git config --get remote.origin.url)"
repo_name="$(basename -s .git ${remote_url})"
git remote add $1 git@github.com:${1}/${repo_name}.git
git remote show $1
git fetch $1
}
function branch-merged() {
local BRANCH
BRANCH=$(git rev-parse --abbrev-ref HEAD)
local MAIN
if $( git show-ref --verify --quiet refs/heads/develop ); then
MAIN=develop
elif $( git show-ref --verify --quiet refs/heads/main ); then
MAIN=main
else
MAIN=master
fi
read -r -p "Will delete branch \"$BRANCH\". Continue (y/N)?" choice
case "$choice" in
y|Y ) git checkout "$MAIN" &&
git pull &&
git branch -d "$BRANCH" &&
git fetch -p;;
* ) echo "aborting";;
esac
}
function mkcdir () { mkdir -- "$1" && cd -- "$1"; }
# Calculator with = (requires bc)
= () { bc -l <<< "$*"; }
# Git shortcuts
alias g="git"
__git_complete g _git
alias gits="git status"
__git_complete gits _git_status
alias gita="git add"
__git_complete gita _git_add
alias gitc="git commit"
__git_complete gitc _git_commit
alias gitco="git checkout"
__git_complete gitco _git_checkout
alias gitsw="git switch"
__git_complete gitsw _git_switch
alias gitd="git diff"
__git_complete gitd _git_diff
alias gitp="git pull"
__git_complete gitp _git_pull
alias gitl="git log"
__git_complete gitl _git_log
alias gitrh="git reset HEAD"
alias gitvim="vim -p \$(git status --short | awk '\$1 ~ /^M$/ {print \$2}')"
function git_is_merged() {
revlist=$(git rev-list -1 $1 --not $2)
if [ $? -eq 0 ]; then
if [ "$revlist" = "" ]; then
echo "$1 IS merged into $2."
else
echo "$1 is NOT merged into $2."
fi
fi
}
# Create dir and cd into it
function mkcd() { mkdir -p "$1" && cd "$1"; }
# Convert pull request
function convert-pull-request() {
if [ $# -eq 3 ]; then
echo "hub pull-request -b $1 -i $2 -h $3"
elif [ $# -eq 2 ]; then
echo "hub pull-request -b $1 -i $2"
else
echo "Usage: convert-pull-request <base> <issue-nr> [<branch>]"
fi
}
# ANSI Escape Codes
# Reset
Color_Off='\e[0m' # Text Reset
# Regular Colors
Black='\e[0;30m' # Black
Red='\e[0;31m' # Red
Green='\e[0;32m' # Green
Yellow='\e[0;33m' # Yellow
Blue='\e[0;34m' # Blue
Purple='\e[0;35m' # Purple
Cyan='\e[0;36m' # Cyan
White='\e[0;37m' # White
# Bold
BBlack='\e[1;30m' # Black
BRed='\e[1;31m' # Red
BGreen='\e[1;32m' # Green
BYellow='\e[1;33m' # Yellow
BBlue='\e[1;34m' # Blue
BPurple='\e[1;35m' # Purple
BCyan='\e[1;36m' # Cyan
BWhite='\e[1;37m' # White
# Underline
UBlack='\e[4;30m' # Black
URed='\e[4;31m' # Red
UGreen='\e[4;32m' # Green
UYellow='\e[4;33m' # Yellow
UBlue='\e[4;34m' # Blue
UPurple='\e[4;35m' # Purple
UCyan='\e[4;36m' # Cyan
UWhite='\e[4;37m' # White
# Background
On_Black='\e[40m' # Black
On_Red='\e[41m' # Red
On_Green='\e[42m' # Green
On_Yellow='\e[43m' # Yellow
On_Blue='\e[44m' # Blue
On_Purple='\e[45m' # Purple
On_Cyan='\e[46m' # Cyan
On_White='\e[47m' # White
# High Intensty
IBlack='\e[0;90m' # Black
IRed='\e[0;91m' # Red
IGreen='\e[0;92m' # Green
IYellow='\e[0;93m' # Yellow
IBlue='\e[0;94m' # Blue
IPurple='\e[0;95m' # Purple
ICyan='\e[0;96m' # Cyan
IWhite='\e[0;97m' # White
# Bold High Intensty
BIBlack='\e[1;90m' # Black
BIRed='\e[1;91m' # Red
BIGreen='\e[1;92m' # Green
BIYellow='\e[1;93m' # Yellow
BIBlue='\e[1;94m' # Blue
BIPurple='\e[1;95m' # Purple
BICyan='\e[1;96m' # Cyan
BIWhite='\e[1;97m' # White
# High Intensty backgrounds
On_IBlack='\e[0;100m' # Black
On_IRed='\e[0;101m' # Red
On_IGreen='\e[0;102m' # Green
On_IYellow='\e[0;103m' # Yellow
On_IBlue='\e[0;104m' # Blue
On_IPurple='\e[10;95m' # Purple
On_ICyan='\e[0;106m' # Cyan
On_IWhite='\e[0;107m' # White
# Custom PS1 containing the current git branch and rvm gemset
if command_exists __git_ps1; then
export PS1="\$(__git_ps1 \"[\[$BIRed\]%s\[$Color_Off\]]\")\[$BIGreen\]\u@\h\[$Color_Off\]:\[$BIBlue\]\W\[$Color_Off\]\$ "
else
export PS1="[\u@\h \W]\$ "
fi
if command_exists rvm; then
export PS1="\$(rvm-prompt | awk -F'@' '{if (\$2) print \"{\"\$2\"}\"}')$PS1"
fi
# SSH agent
export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"