-
Notifications
You must be signed in to change notification settings - Fork 1
/
.commonprofile
193 lines (156 loc) · 5.81 KB
/
.commonprofile
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
################################################################################
# @name: .commonprofile
# @author: Eli Gundry
# => A shared settings file for all my shells
################################################################################
################################################################################
# => Custom Functions
################################################################################
pathadd() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
fi
}
command_exists() {
command -v "$1" &> /dev/null
}
# Extract a value from a Pass file
# ex: pass google.com | pass_get_key "Recovery Codes"
pass_get_key() {
local key="$1"
if [ -z "$key" ]; then
echo "must provide a key to extract"
return 1
fi
if [ "$key" = "password" ]; then
head -n 1 | tr -d '\n'
return 0
fi
command_exists shyaml
local shyaml_installed=$?
if [ $shyaml_installed -gt 0 ]; then
pip3 install shyaml &> /dev/null
fi
tail -n +2 | shyaml get-value "$key"
}
################################################################################
# => Pyenv
################################################################################
# export PYENV_DEBUG=1
export PYENV_ROOT="$HOME/.pyenv"
pathadd "$PYENV_ROOT/bin"
export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
if command_exists pyenv; then
eval "$(pyenv init - --no-rehash)"
eval "$(pyenv virtualenv-init -)"
fi
################################################################################
# => fnm
# https://github.com/Schniz/fnm
################################################################################
eval "$(fnm env --use-on-cd --log-level quiet)"
################################################################################
# => Google Cloud SDK
################################################################################
# source "$HOME/.google-cloud-sdk/completion.zsh.inc"
# source "$HOME/.google-cloud-sdk/path.zsh.inc"
################################################################################
# => Homebrew
################################################################################
# EDG 2019-08-13: For some reason, MacOS ZSH isn't including the Homebrew bin
# path, which breaks everything. Adding it manually seems to fix the issue.
pathadd /usr/local/bin
################################################################################
# => Go
################################################################################
export GOPATH="$HOME/Code/go"
pathadd "$GOPATH/bin"
pathadd /usr/local/go/bin
################################################################################
# => Default Variables
################################################################################
export INPUTRC=$HOME/.inputrc
export LANG=en_US.UTF-8
export MANPAGER=less
export PAGER=less
if command_exists nvim; then
export EDITOR=nvim
export VISUAL=nvim
else
export EDITOR=vim
export VISUAL=vim
fi
if command_exists google-chrome-stable; then
export BROWSER=google-chrome-stable
else
export BROWSER="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
fi
# Turn off flow control
stty -ixon
################################################################################
# => LESS Colors for Man
# https://unix.stackexchange.com/a/178816
################################################################################
export LESS_TERMCAP_mb=$'\e[1;35m'
export LESS_TERMCAP_md=$'\e[1;34m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[7;40m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;33m'
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
export GROFF_NO_SGR=1
################################################################################
# => /sbin Debian bullshit
#
# Debian likes to "hide" "privileged" programs outside of the path, thus you
# can't tab complete simple commands like ifconfig. Fuck that noise, we are
# consenting adults and don't need that bullshit.
################################################################################
pathadd "/sbin"
pathadd "/usr/sbin"
################################################################################
# => Shared Aliases
################################################################################
if command_exists nvim; then
alias v='nvim'
# This allows for piping of any command into vim like less. You exit with Q
alias -g iv='| nvim -R -c ":map Q :q!<enter>" -'
else
alias v='vim'
alias -g iv='| vim -R -c ":map Q :q!<enter>" -'
fi
alias c='clear'
alias cp='cp -v'
alias ip='curl ifconfig.me/ip'
alias mkdir='mkdir -pv'
alias mv='mv -v'
alias rm='rm -v'
alias s='sudo'
alias highstate='sudo salt-call state.highstate'
alias state-apply='sudo salt-call state.apply'
# ls shortcuts
alias la='ls -A'
alias ll='ls -lh'
alias lla='ls -lAh'
alias lr='ls -R'
alias lar='ls -Arh'
alias l.='ls -d .*'
################################################################################
# => AWS Access Environment Variables
################################################################################
# if command_exists aws; then
# export AWS_ACCESS_KEY_ID="$(aws configure get aws_access_key_id)"
# export AWS_SECRET_ACCESS_KEY="$(aws configure get aws_secret_access_key)"
# fi
################################################################################
# => Avante.nvim
# This plugin only allows the API key to be set as an environment variable
################################################################################
export OPENAI_API_KEY="$(pass Dev/openai.com/gp.nvim-api-key)"