mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 09:27:44 -04:00
288 lines
11 KiB
Bash
288 lines
11 KiB
Bash
# Path to your oh-my-zsh installation.
|
|
export ZSH=~/.oh-my-zsh
|
|
|
|
# Set name of the theme to load. Optionally, if you set this to "random"
|
|
# it'll load a random theme each time that oh-my-zsh is loaded.
|
|
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
|
if [[ `uname` == 'Linux' ]]; then
|
|
ZSH_THEME="beanbag"
|
|
#ZSH_THEME="af-magic"
|
|
else
|
|
ZSH_THEME="beanbag"
|
|
#ZSH_THEME="robbyrussell"
|
|
#ZSH_THEME="pygmalion"
|
|
#ZSH_THEME="muse"
|
|
fi
|
|
|
|
# Get Homebrew into the path early so that plugins and such can use
|
|
# programs installed by it
|
|
if [[ $(uname) == 'Darwin' ]]; then
|
|
if [ "$(uname -p)" = 'i386' ] && [ ! -f '/opt/homebrew/bin/brew' ]; then
|
|
eval "$(/usr/local/bin/brew shellenv)"
|
|
else
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
fi
|
|
elif [[ $(uname) == 'Linux' ]]; then
|
|
if [[ -e /home/linuxbrew/.linuxbrew/bin/brew ]]; then
|
|
# Don't use the eval so that it doesn't override system python
|
|
# eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew"
|
|
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar"
|
|
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew"
|
|
export PATH="${PATH}:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin"
|
|
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:"
|
|
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}"
|
|
fi
|
|
fi
|
|
|
|
# Get Homebrew shell completion bits
|
|
# https://docs.brew.sh/Shell-Completion
|
|
if type brew &>/dev/null; then
|
|
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
|
|
fi
|
|
|
|
# Uncomment the following line to use case-sensitive completion.
|
|
# CASE_SENSITIVE="true"
|
|
|
|
# Uncomment the following line to use hyphen-insensitive completion. Case
|
|
# sensitive completion must be off. _ and - will be interchangeable.
|
|
# HYPHEN_INSENSITIVE="true"
|
|
|
|
# Uncomment the following line to disable bi-weekly auto-update checks.
|
|
# DISABLE_AUTO_UPDATE="true"
|
|
|
|
# Uncomment the following line to change how often to auto-update (in days).
|
|
# export UPDATE_ZSH_DAYS=13
|
|
|
|
# Uncomment the following line to disable colors in ls.
|
|
# DISABLE_LS_COLORS="true"
|
|
|
|
# Uncomment the following line to disable auto-setting terminal title.
|
|
# DISABLE_AUTO_TITLE="true"
|
|
|
|
# Uncomment the following line to enable command auto-correction.
|
|
ENABLE_CORRECTION="false"
|
|
|
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
|
COMPLETION_WAITING_DOTS="false"
|
|
|
|
# Uncomment the following line if you want to disable marking untracked files
|
|
# under VCS as dirty. This makes repository status check for large repositories
|
|
# much, much faster.
|
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
|
|
|
# Uncomment the following line if you want to change the command execution time
|
|
# stamp shown in the history command output.
|
|
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
# HIST_STAMPS="mm/dd/yyyy"
|
|
|
|
# Would you like to use another custom folder than $ZSH/custom?
|
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
|
ZSH_CUSTOM=~/repos/customized-oh-my-zsh
|
|
|
|
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
|
# Add wisely, as too many plugins slow down shell startup.
|
|
plugins=(brew bundler gem git github history kube-ps1 kubectl macos pip python terraform vagrant vscode zsh-autosuggestions)
|
|
|
|
source $ZSH/oh-my-zsh.sh
|
|
|
|
# User configuration
|
|
|
|
[ -f ~/.private-env ] && source ~/.private-env || echo '~/.private-env is missing'
|
|
|
|
# Start GPG agent
|
|
# Some tips from https://hedberg.io/yubikey-for-ssh/ helped simplify this:
|
|
if [[ $(uname) == 'Darwin' ]]; then
|
|
# Add GPG Suite binaries to the path:
|
|
export PATH=/usr/local/MacGPG2/bin:$PATH
|
|
fi
|
|
|
|
export GPG_TTY=$(tty)
|
|
# export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
|
# gpgconf --launch gpg-agent
|
|
|
|
# export MANPATH="/usr/local/man:$MANPATH"
|
|
|
|
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
|
# For a full list of active aliases, run `alias`.
|
|
#
|
|
# Example aliases
|
|
# alias zshconfig="mate ~/.zshrc"
|
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
|
#alias ll='ls -G -l'
|
|
#alias ls='ls -G'
|
|
alias beo='bundle exec onceover run spec --trace --force'
|
|
alias biv='bundle install --path=vendor/bundle'
|
|
alias ce='code-exploration'
|
|
alias gbc='git branch --merged | command grep -vE "^(\*|\s*(main|master|develop|production)\s*$)" | command xargs -n 1 git branch -d'
|
|
alias gitextract='git log --pretty=email --patch-with-stat --reverse --full-index --binary --'
|
|
alias gpge='gpg2 --encrypt --sign --armor -r '
|
|
alias hubpr='hub pull-request --push --browse'
|
|
alias pssh='ssh -o "UserKnownHostsFile /dev/null" -o "StrictHostKeyChecking no" -o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostKeyAlgorithms=+ssh-rsa -o KexAlgorithms=+diffie-hellman-group1-sha1 -i ~/.ssh/id_rsa-acceptance'
|
|
alias sal='ssh-add -L'
|
|
alias st='open -a SourceTree'
|
|
alias sz='source ~/.zshrc'
|
|
alias usegpg='killall ssh-agent; export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) && gpgconf --launch gpg-agent'
|
|
alias usessh='gpgconf --kill gpg-agent'
|
|
|
|
# aliases whose command changes based on OS
|
|
if [[ `uname` == 'Linux' ]]; then
|
|
alias ykey='sudo systemctl restart pcscd && sudo pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L'
|
|
else
|
|
alias ykey='pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L'
|
|
fi
|
|
|
|
## Linux-only aliases
|
|
if [[ `uname` == 'Linux' ]]; then
|
|
alias enable-ruby-27='source ~/enable-ruby-27'
|
|
alias pbcopy='xclip -selection clipboard'
|
|
alias pbpaste='xclip -selection clipboard -o'
|
|
alias uwgconnect='nmcli dev wifi connect SecureWest password'
|
|
alias uwgroute='nmcli connection modify SecureWest ipv4.route-metric 20; nmcli radio wifi off; nmcli radio wifi on'
|
|
alias uwgforget='nmcli connection delete SecureWest'
|
|
|
|
function popup() {
|
|
echo 'checking for updates via apt...'
|
|
sudo apt update
|
|
sudo apt upgrade -y
|
|
echo
|
|
echo 'checking for updates via flatpak...'
|
|
flatpak update
|
|
echo
|
|
echo 'checking for updates via snap...'
|
|
sudo snap refresh
|
|
echo
|
|
echo 'checking for updates via brew...'
|
|
brew update
|
|
brew upgrade
|
|
echo
|
|
echo 'checking for updates to Zoom'
|
|
wget -O /tmp/zoom_amd64.deb https://zoom.us/client/latest/zoom_amd64.deb && sudo apt-get install -y /tmp/zoom_amd64.deb; rm -f /tmp/zoom_amd64.deb
|
|
echo
|
|
echo 'checking for firmware updates...'
|
|
sudo fwupdmgr refresh --force && sudo fwupdmgr get-updates && sudo fwupdmgr update
|
|
echo
|
|
echo 'all done :)'
|
|
}
|
|
fi
|
|
|
|
if [[ `uname` != 'Linux' ]]; then
|
|
function otpon() {
|
|
osascript -e 'tell application "yubiswitch" to KeyOn'
|
|
}
|
|
function otpoff() {
|
|
osascript -e 'tell application "yubiswitch" to KeyOff'
|
|
}
|
|
fi
|
|
|
|
# )ofni_tnuocca_swa($ is $(aws_account_info) backwards
|
|
#PROMPT=`echo $PROMPT | rev | sed 's/ / )ofni_tnuocca_swa($ /'| rev`
|
|
|
|
function get_cluster_short() {
|
|
echo "$1" |rev |cut -d _ -f1 |rev
|
|
}
|
|
KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short
|
|
KUBE_PS1_COLOR_CONTEXT="%{$fg[yellow]%}"
|
|
KUBE_PS1_ENABLED=false
|
|
|
|
export EDITOR='vim'
|
|
|
|
export GOPATH=$HOME/go
|
|
|
|
if [[ `uname` == 'Darwin' ]]; then
|
|
# Bits common to all macOS instances
|
|
alias flushdns='sudo killall -HUP mDNSResponder'
|
|
alias localdns='sudo networksetup -setdnsservers Wi-Fi empty && sudo networksetup -setdnsservers Wi-Fi 127.0.0.1 ::1 && flushdns'
|
|
alias ogk='open -a GitKraken'
|
|
alias stockdns='sudo networksetup -setdnsservers Wi-Fi empty && flushdns'
|
|
|
|
if [ -d "$HOME/.krew" ]; then export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"; fi
|
|
|
|
export PATH=$PATH:/usr/local/sbin
|
|
|
|
# Araxis needs to come first so that its tools don't get stomped
|
|
# by ones Homebrew installs to /usr/local/bin. In particular, compare
|
|
# from ImageMagick breaks using git difftool.
|
|
if [ -d "/Applications/Araxis Merge.app" ]; then export PATH='/Applications/Araxis Merge.app/Contents/Utilities':$PATH; fi
|
|
|
|
eval '/usr/libexec/path_helper -s' > /dev/null
|
|
|
|
# Add OVFTool to PATH if it is installed
|
|
if [ -d "/Applications/VMware OVF Tool" ]; then export PATH=$PATH:'/Applications/VMware OVF Tool'; fi
|
|
|
|
# add gems to path
|
|
GEMBIN="$(gem environment gemdir)/bin"
|
|
export PATH=$PATH:$GEMBIN
|
|
|
|
# added by travis gem
|
|
# [ -f ~/.travis/travis.sh ] && source ~/.travis/travis.sh || echo 'The travis gem is missing. After installing it run "echo y|travis" to create ~/.travis'
|
|
|
|
# added to make pipx work
|
|
[ -d /Users/gene/.local/bin ] && export PATH=$PATH:/Users/gene/.local/bin
|
|
|
|
export OPENFAAS_PREFIX="genebean"
|
|
|
|
[ -e "${HOME}/.iterm2_shell_integration.zsh" ] && source "${HOME}/.iterm2_shell_integration.zsh"
|
|
|
|
if [ "$(uname -p)" = 'i386' ] && [ ! -f '/opt/homebrew/bin/brew' ]; then
|
|
|
|
# optional additions from homebrew
|
|
[ -d "/usr/local/opt/node@12/bin" ] && export PATH="/usr/local/opt/node@12/bin:$PATH"
|
|
[ -d /usr/local/opt/qt/bin ] && export PATH=$PATH:/usr/local/opt/qt/bin
|
|
|
|
# use homebrew's ruby
|
|
[ -d /usr/local/opt/ruby/bin ] && export PATH=/usr/local/opt/ruby/bin:$PATH
|
|
|
|
# hide ruby 2.7's extra output
|
|
export RUBYOPT='-W:no-deprecated -W:no-experimental'
|
|
|
|
export VAGRANT_DEFAULT_PROVIDER='virtualbox'
|
|
|
|
glcoud_zsh_path='/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc'
|
|
[ -f $glcoud_zsh_path ] && source $glcoud_zsh_path
|
|
|
|
gcloud_zsh_completions='/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc'
|
|
[ -f $gcloud_zsh_completions ] && source $gcloud_zsh_completions
|
|
else
|
|
glcoud_zsh_path='/usr/local/google-cloud-sdk/path.zsh.inc'
|
|
if [ -f $glcoud_zsh_path ]; then source $glcoud_zsh_path; fi
|
|
|
|
gcloud_zsh_completions='/usr/local/google-cloud-sdk/completion.zsh.inc'
|
|
if [ -f $gcloud_zsh_completions ]; then source $gcloud_zsh_completions; fi
|
|
|
|
# use homebrew's ruby
|
|
[ -d "/opt/homebrew/opt/ruby@2.7/bin" ] && export PATH='/opt/homebrew/opt/ruby@2.7/bin':$PATH
|
|
|
|
# hide ruby 2.7's extra output
|
|
export RUBYOPT='-W:no-deprecated -W:no-experimental'
|
|
fi
|
|
elif [[ `uname` == 'Linux' ]]; then
|
|
PATH="$HOME/.local/bin:$PATH"
|
|
|
|
# add Pulumi to the PATH
|
|
if [ -d "$HOME/.pulumi/bin" ] ; then
|
|
PATH=$PATH:$HOME/.pulumi/bin
|
|
fi
|
|
|
|
if [ -d "$HOME/.local/share/gem/ruby/3.0.0/bin" ] ; then
|
|
PATH="$HOME/.local/share/gem/ruby/3.0.0/bin:$PATH"
|
|
fi
|
|
|
|
# export CLOUDSDK_PYTHON="/usr/bin/python2"
|
|
gcloud_zsh_completions='/snap/google-cloud-cli/current/completion.zsh.inc'
|
|
if [ -f $gcloud_zsh_completions ]; then source $gcloud_zsh_completions; fi
|
|
|
|
fi
|
|
|
|
if type floaty &>/dev/null; then
|
|
source $(floaty completion --shell zsh)
|
|
fi
|
|
|
|
# default kube-ps1 to off
|
|
kubeoff
|
|
|
|
|