summaryrefslogtreecommitdiffstats
path: root/.bashrc
blob: 1593a35496f44fcc5f2c87a8faee8780ef098fa3 (plain) (blame)
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
#!/bin/bash
# shellcheck disable=SC1091

export CLICOLOR=1
# Unix/Bash Readline custom colors (created by dircolors in bashrc)
export LS_COLORS="$LS_COLORS:di=00;36:ln=00;35:ex=00;31"

export IGNOREEOF=42 # Ignore Ctrl+D logout terminal session
export HISTSIZE=1000 # Num commands to remmember in a terminal session
export HISTFILESIZE=10000 # Max number of linse in history file
export HISTFILE="$HOME/.bash_history"
export HISTCONTROL=ignoredups:erasedups

export EDITOR='vim'
export TERM="xterm-256color"
export GREP_OPTIONS="--color=auto"
export PS1='[\h]: \W \$ '
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# ==== GPG Config
GPG_TTY=$(tty)
export GPG_TTY
unset SSH_AGENT_PID

# macOS locally: SSH_AUTH_SOCK is empty (FALSE)      || SSH_CONNECTION is empty (TRUE)  = uses gpg-agent
# Linux locally: SSH_AUTH_SOCK might be empty (TRUE) || SSH_CONNECTION is empty (TRUE)  = uses gpg-agent
# SSH session:   SSH_AUTH_SOCK is empty (FALSE)      || SSH_CONNECTION is empty (FALSE) = keep forwarded agent
if [ -z "$SSH_AUTH_SOCK" ] || [ -z "$SSH_CONNECTION" ]; then
  SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
  export SSH_AUTH_SOCK
fi

# ==== Shell Opts
# check the window size after each command and, if necessary, update LINES/COLUMNS
shopt -s checkwinsize

# ==== Aliases
alias ls='ls --color=auto'
alias la='ls -a'
alias spc="cd ~/Work/Space/"
alias mb="cd ~/Work/MBition/"
alias dirs="dirs -v"
alias srv="python3 -m http.server" # start simple server
alias tagme='ctags -R --languages=ruby --exclude=.git --exclude=log . $(bundle list --paths)'
alias gpgkill='(
  pkill pinentry-tty
  pkill pinentry-curses
  gpg-connect-agent killagent /bye
  gpg-connect-agent updatestartuptty /bye
  gpg-connect-agent /bye
)'
alias cgit='docker run --name cgit -v $(pwd):/srv -p 1313:80 --rm -it cgit'
alias hi!='fortune | cowsay | lolcat'

# ==== Functions
# get app ID to add to amethyst (example appid /Applications/Spotify.app/)
appid() {
  codesign -dr - "$@"
}

homebrew_token() {
  HOMEBREW_GITHUB_API_TOKEN=$(pass personal/github | grep homebrew_token | awk '{ print $NF}')
  export HOMEBREW_GITHUB_API_TOKEN
}

if command -v neomutt 1>/dev/null 2>&1; then
  # Fixes the pinentry-tty error https://github.com/neomutt/neomutt/issues/1014
  mutt() {
    PINENTRY_USER_DATA=curses neomutt "$@"
  }
fi

# ==== BEGIN ANSIBLE MISE CONFIG
if command -v mise 1>/dev/null 2>&1; then
  eval "$(mise activate bash)"
fi
# ==== END ANSIBLE MISE CONFIG

# ==== BEGIN ANSIBLE PATH CONFIG
if [ -d "$HOME/.local/bin" ]; then
  export PATH="$HOME/.local/bin:$PATH"
fi
# ==== END ANSIBLE PATH CONFIG

# ==== BEGIN ANSIBLE BASH-COMPLETION CONFIG
if [ -f "/usr/share/bash-completion/bash_completion" ]; then
  source "/usr/share/bash-completion/bash_completion"
fi
# ==== END ANSIBLE BASH-COMPLETION CONFIG

# ==== BEGIN ANSIBLE GO CONFIG
if [ -d "$HOME/go/bin" ]; then
  export PATH="$HOME/go/bin:$PATH"
fi
# ==== END ANSIBLE GO CONFIG

# ==== BEGIN ANSIBLE RUST CONFIG
if [ -d "$HOME/.cargo/bin" ]; then
  export PATH="$HOME/.cargo/bin:$PATH"
fi
# ==== END ANSIBLE RUST CONFIG

# ==== rbenv config.
if command -v rbenv 1>/dev/null 2>&1; then
  export PATH="$HOME/.rbenv/bin:$PATH"
  eval "$(rbenv init -)"
fi

# ==== k8s/ktx/kns completion
if command -v kubectl 1>/dev/null 2>&1; then
  alias k='kubectl'
  complete -F __start_kubectl k
  alias ktx='kubectx'
  complete -F _kube_contexts ktx
  alias kns='kubens'
  complete -F _kube_namespaces kns
fi

# ==== BEGIN ANSIBLE ZOXIDE CONFIG
if command -v zoxide 1>/dev/null 2>&1; then
  eval "$(zoxide init bash --cmd cd)"
fi
# ==== END ANSIBLE ZOXIDE CONFIG

# ==== Work config ===========================================================
# ==== Aliases
alias assume=". assume"