-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbash-help
More file actions
244 lines (213 loc) · 6.88 KB
/
Copy pathbash-help
File metadata and controls
244 lines (213 loc) · 6.88 KB
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
242
243
244
export HOST=`hostname`
export HOSTNAME="`hostname | sed -e 's,\..*,,'`"
export PAGER="less"
export MANPAGER="less"
export TERM="xterm-color"
export EDITOR=vim
export LESS=FRXe
export PATH="$HOME/my-toolbox:/usr/local/bin:$PATH"
export DOCKER_BUILDKIT=1
export BASH_SILENCE_DEPRECATION_WARNING=1
unset autologout # don't log me out. please.
# dev aliases
if [[ "$OSTYPE" == "darwin"* ]]; then
export DIFF=colordiff
else
export DIFF=diff
fi
alias akacurl='curl -v -s -o/dev/null -H "Pragma: akamai-x-get-cache-key" -H "Pragma: akamai-x-cache-on" -H "Pragma: akamai-x-cache-remote-on" -H "Pragma: akamai-x-get-true-cache-key" '
alias be='bundle exec'
alias bspec='be rspec --format documentation'
alias decrypt=' gpg -u $GPG_EMAIL -d -o - '
alias encrypt=' gpg -e -r $GPG_EMAIL '
alias gc='git commit -a'
alias H='curl -v -s -o/dev/null -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"'
alias pick='git cherry-pick'
alias pdiff="$DIFF -ruw -x .svn "
alias pmake='make -f Makefile.local'
alias serve='python -m http.server 8080 --bind 0.0.0.0'
alias sourceenv='export $(cat .env | grep -v ^# | xargs)'
alias splitspace="perl -n -e 's/\ /\n/g; print'"
alias joinspace="perl -n -e 's/\n/ /; next if /#/; print'"
alias nospace="perl -pi -e 's/^\ +$|\ +$//g'"
alias venv='. venv/bin/activate'
alias vi='vim'
alias isodate='date "+%Y-%m-%dT%H:%M:%SZ"'
alias pw='rand 24 1'
# macos
alias cleardns='sudo killall -HUP mDNSResponder'
# functions sourced from .bashrc
function cdd() {
#echo "args: $#"
dir=''
if [ $# = 0 ]; then
dir=$HOME
else
dir="$*"
fi
builtin cd $dir;
ls -FC;
echo '';
}
# common colors
RED='\[\e[0;31m\]'
GREEN='\[\e[0;32m\]'
BLUE='\[\e[0;34m\]'
RESET='\[\e[0m\]'
# Set shell prompt
# based on
# $Id: .bashrc,v 1.5 2004/09/15 16:24:58 psy Exp $
#
# Source: http://www.nothingisreal.com/
#
function prompt {
local BLACK="\[\033[0;30m\]"
local BLUE="\[\033[0;34m\]"
local GREEN="\[\033[0;32m\]"
local CYAN="\[\033[0;36m\]"
local RED="\[\033[0;31m\]"
local PURPLE="\[\033[0;35m\]"
local BROWN="\[\033[0;33m\]"
local LIGHT_GRAY="\[\033[0;37m\]"
local DARK_GRAY="\[\033[1;30m\]"
local LIGHT_BLUE="\[\033[1;34m\]"
local LIGHT_GREEN="\[\033[1;32m\]"
local LIGHT_CYAN="\[\033[1;36m\]"
local LIGHT_RED="\[\033[1;31m\]"
local LIGHT_PURPLE="\[\033[1;35m\]"
local YELLOW="\[\033[1;33m\]"
local WHITE="\[\033[1;37m\]"
local NO_COLOUR="\[\033[0m\]"
case $TERM in
xterm*)
TITLEBAR='\[\033]0;\u@\h:\w\007\]'
;;
*)
TITLEBAR=""
;;
esac
case $1 in
white) PS1="$WHITE\u@\h:$BLACK ";;
blue)
PS1="${TITLEBAR}$BLUE[$BLUE\u$BLUE@$BLUE\h$BLUE:$BLACK\w$BLUE]$BLUE\$$BLACK "
;;
red)
PS1="${TITLEBAR}$RED[$RED\u$RED@$RED\h$RED:$RED\w$RED]$BLACK\$$BLACK "
;;
green)
PS1="${TITLEBAR}$GREEN[$GREEN\u$GREEN@$GREEN\h$GREEN:$CYAN\w$GREEN]$BLACK\$$BLACK "
;;
brown)
PS1="${TITLEBAR}$BROWN[$LIGHT_BROWN\u$BROWN@$LIGHT_BROWN\h$BROWN:$LIGHT_CYAN\w$BROWN]$BLACK\$$BLACK "
;;
purple)
PS1="${TITLEBAR}$PURPLE[$PURPLE\u$PURPLE@$PURPLE\h$PURPLE:$BLACK\w$PURPLE]$BLACK\$$BLACK "
;;
*)
PS1="[\u@\h:\w]\$ "
;;
esac
PS2='> '
PS4='+ '
}
case $HOSTNAME in
pekmac*) prompt red ;;
workhorse*) prompt purple ;;
linode*) prompt green ;;
*) prompt blue ;;
esac
# start up ssh-agent on login
SSH_ENV="$HOME/.ssh/environment.$HOST"
function start_agent {
export SSH_AUTH_SOCK=${SSH_ENV}.sock
echo "Initialising new SSH agent..."
rm -f $SSH_AUTH_SOCK
/usr/bin/ssh-agent -a "$SSH_AUTH_SOCK" | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
for possiblekey in ${HOME}/.ssh/id_*; do
if grep -q PRIVATE "$possiblekey"; then
ssh-add "$possiblekey"
fi
done
}
# Source SSH settings, if applicable
if [ ! ${SSH_AGENT_PID} ]; then
# echo "SSH_ENV = $SSH_ENV"
# do we have a stale/empty env file?
if [ -f "${SSH_ENV}" ] && [ ! -s "${SSH_ENV}" ]; then
echo "found empty ${SSH_ENV}"
rm -f "${SSH_ENV}"
fi
if [ -s "${SSH_ENV}" ]; then
#cat $SSH_ENV
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cywgin
#echo "checking for running ssh-agent: ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent"
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent > /dev/null || {
start_agent;
}
else
start_agent;
fi
fi
aws_profile_prompt() {
if [[ -n "$AWS_PROFILE" ]]; then
echo "☁️་༘ ($AWS_PROFILE)"
fi
}
# no timeout on OSX
function timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; }
# package managers
[ -s "/opt/homebrew/bin/brew" ] && eval "$(/opt/homebrew/bin/brew shellenv)"
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# https://gist.github.com/frnhr/dba7261bcb6970cf6121
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
pyenvVirtualenvUpdatePrompt() {
[ -z "$PYENV_VIRTUALENV_ORIGINAL_PS1" ] && export PYENV_VIRTUALENV_ORIGINAL_PS1="$PS1"
[ -z "$PYENV_VIRTUALENV_GLOBAL_NAME" ] && export PYENV_VIRTUALENV_GLOBAL_NAME="$(pyenv global)"
VENV_NAME="$(pyenv version-name)"
VENV_NAME="${VENV_NAME##*/}"
GLOBAL_NAME="$PYENV_VIRTUALENV_GLOBAL_NAME"
# non-global versions:
COLOR="$BLUE"
# global version:
[ "$VENV_NAME" == "$GLOBAL_NAME" ] && COLOR="$RED"
# virtual envs:
[ "${VIRTUAL_ENV##*/}" == "$VENV_NAME" ] && COLOR="$GREEN"
if [ -z "$COLOR" ]; then
PS1="$PYENV_VIRTUALENV_ORIGINAL_PS1"
else
PS1="($COLOR${VENV_NAME}$RESET)$PYENV_VIRTUALENV_ORIGINAL_PS1"
fi
export PS1
}
export NVM_DIR="$HOME/.nvm"
# mac is global
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
# or nvm in homedir
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion.d/nvm" ] && \. "$NVM_DIR/bash_completion.d/nvm"
# nvm magic
enter_directory() {
if [[ $PWD == $PREV_PWD ]]; then
return
fi
if [[ "$PWD" =~ "$PREV_PWD" && ! -f ".nvmrc" ]]; then
return
fi
PREV_PWD=$PWD
if [[ -f ".nvmrc" ]]; then
nvm use
NVM_DIRTY=true
elif [[ $NVM_DIRTY = true ]]; then
nvm use default
NVM_DIRTY=false
fi
}
export PROMPT_COMMAND="$PROMPT_COMMAND aws_profile_prompt; pyenvVirtualenvUpdatePrompt; enter_directory"