alias ctags="`brew --prefix`/bin/ctags" export EDITOR=nvim # If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:/opt/local/bin:${GOPATH}/bin:$PATH # Path to your oh-my-zsh installation. export ZSH=/Users/jacobbohanon/.oh-my-zsh # GO stuff export GOPATH="${HOME}/go" #export GOROOT="$(brew --prefix golang)/libexec" export GOROOT="/usr/local/go" # eksctl fpath=($fpath ~/.zsh/completion) export PATH=${GOPATH}/bin:${GOROOT}/bin:$PATH # License keys for enterprise installations SECRET_PATH="${SECRET_PATH:-$HOME/.dotfiles/ignore/secrets}" if [[ -f $SECRET_PATH ]]; then while read -r secret do eval $secret done < $SECRET_PATH else echo "could not find secrets file at $SECRET_PATH" echo "expected file containing secrets export statements" echo "" echo "see https://github.com/settings/tokens for creating a github access token" echo "export GITHUB_TOKEN=" echo "" echo "see https://github.com/solo-io/licensing for generating licenses" echo "export GLOO_LICENSE_KEY=" echo "export GLOO_MESH_LICENSE_KEY=" fi # Aliases to reach different repos alias pls='sudo' alias cdsi='cd $GOPATH/src/github.com/solo-io' alias cdg='cd $GOPATH/src/github.com/solo-io/gloo' alias nvg='nvim $GOPATH/src/github.com/solo-io/gloo/README.md' alias cdgf='cd $GOPATH/src/github.com/solo-io/gloo-fed' alias nvgf='nvim $GOPATH/src/github.com/solo-io/gloo-fed/README.md' alias cdsp='cd $GOPATH/src/github.com/solo-io/solo-projects' alias nvsp='nvim $GOPATH/src/github.com/solo-io/solo-projects/README.md' alias cdgm='cd $GOPATH/src/github.com/solo-io/gloo-mesh' alias nvgm='nvim $GOPATH/src/github.com/solo-io/gloo-mesh/README.md' alias cdgmui='cd $GOPATH/src/github.com/solo-io/gloo-mesh-ui' alias nvgmui='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-ui/README.md' alias cdgme='cd $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise' alias nvgme='nvim $GOPATH/src/github.com/solo-io/gloo-mesh-enterprise/README.md' alias cdea='cd $GOPATH/src/github.com/solo-io/ext-auth-service' alias nvea='nvim $GOPATH/src/github.com/solo-io/ext-auth-service/README.md' alias cdrl='cd $GOPATH/src/github.com/solo-io/rate-limiter' alias nvrl='nvim $GOPATH/src/github.com/solo-io/rate-limiter/README.md' alias cddf='cd $HOME/.dotfiles' alias nvdf='nvim $HOME/.dotfiles/README.md' # go mod needs this export GOPRIVATE="github.com/solo-io" # 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 ZSH_THEME="robbyrussell" # fzf stuff _fzf_compgen_path() { fd --hidden --follow --exclude ".git" . "$1" } # Use fd to generate the list for directory completion _fzf_compgen_dir() { fd --type d --hidden --follow --exclude ".git" . "$1" } # Set list of themes to load # Setting this variable when ZSH_THEME=random # cause zsh load theme from this variable instead of # looking in ~/.oh-my-zsh/themes/ # An empty array have no effect # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) # 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="true" # Uncomment the following line to display red dots whilst waiting for completion. # COMPLETION_WAITING_DOTS="true" # 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 # 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=( git fzf zsh-autosuggestions zsh-syntax-highlighting kubectl ) source $ZSH/oh-my-zsh.sh # User configuration # export MANPATH="/usr/local/man:$MANPATH" # You may need to manually set your language environment # export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then # export EDITOR='vim' # else # export EDITOR='mvim' # fi # Compilation flags # export ARCHFLAGS="-arch x86_64" # ssh export SSH_KEY_PATH="~/.ssh/rsa_id" # 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`. [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh eval "$(starship init zsh)" alias cls='clear' export PATH="/opt/homebrew/opt/protobuf@3.6/bin:$PATH" #compdef _helm helm # zsh completion for helm -*- shell-script -*- __helm_debug() { local file="$BASH_COMP_DEBUG_FILE" if [[ -n ${file} ]]; then echo "$*" >> "${file}" fi } _helm() { local shellCompDirectiveError=1 local shellCompDirectiveNoSpace=2 local shellCompDirectiveNoFileComp=4 local shellCompDirectiveFilterFileExt=8 local shellCompDirectiveFilterDirs=16 local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace local -a completions __helm_debug "\n========= starting completion logic ==========" __helm_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" # The user could have moved the cursor backwards on the command-line. # We need to trigger completion from the $CURRENT location, so we need # to truncate the command-line ($words) up to the $CURRENT location. # (We cannot use $CURSOR as its value does not work when a command is an alias.) words=("${=words[1,CURRENT]}") __helm_debug "Truncated words[*]: ${words[*]}," lastParam=${words[-1]} lastChar=${lastParam[-1]} __helm_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" # For zsh, when completing a flag with an = (e.g., helm -n=) # completions must be prefixed with the flag setopt local_options BASH_REMATCH if [[ "${lastParam}" =~ '-.*=' ]]; then # We are dealing with a flag with an = flagPrefix="-P ${BASH_REMATCH}" fi # Prepare the command to obtain completions requestComp="${words[1]} __complete ${words[2,-1]}" if [ "${lastChar}" = "" ]; then # If the last parameter is complete (there is a space following it) # We add an extra empty parameter so we can indicate this to the go completion code. __helm_debug "Adding extra empty parameter" requestComp="${requestComp} \"\"" fi __helm_debug "About to call: eval ${requestComp}" # Use eval to handle any environment variables and such out=$(eval ${requestComp} 2>/dev/null) __helm_debug "completion output: ${out}" # Extract the directive integer following a : from the last line local lastLine while IFS='\n' read -r line; do lastLine=${line} done < <(printf "%s\n" "${out[@]}") __helm_debug "last line: ${lastLine}" if [ "${lastLine[1]}" = : ]; then directive=${lastLine[2,-1]} # Remove the directive including the : and the newline local suffix (( suffix=${#lastLine}+2)) out=${out[1,-$suffix]} else # There is no directive specified. Leave $out as is. __helm_debug "No directive found. Setting do default" directive=0 fi __helm_debug "directive: ${directive}" __helm_debug "completions: ${out}" __helm_debug "flagPrefix: ${flagPrefix}" if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then __helm_debug "Completion received error. Ignoring completions." return fi while IFS='\n' read -r comp; do if [ -n "$comp" ]; then # If requested, completions are returned with a description. # The description is preceded by a TAB character. # For zsh's _describe, we need to use a : instead of a TAB. # We first need to escape any : as part of the completion itself. comp=${comp//:/\\:} local tab=$(printf '\t') comp=${comp//$tab/:} __helm_debug "Adding completion: ${comp}" completions+=${comp} lastComp=$comp fi done < <(printf "%s\n" "${out[@]}") if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then __helm_debug "Activating nospace." noSpace="-S ''" fi if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then # File extension filtering local filteringCmd filteringCmd='_files' for filter in ${completions[@]}; do if [ ${filter[1]} != '*' ]; then # zsh requires a glob pattern to do file filtering filter="\*.$filter" fi filteringCmd+=" -g $filter" done filteringCmd+=" ${flagPrefix}" __helm_debug "File filtering command: $filteringCmd" _arguments '*:filename:'"$filteringCmd" elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then # File completion for directories only local subdir subdir="${completions[1]}" if [ -n "$subdir" ]; then __helm_debug "Listing directories in $subdir" pushd "${subdir}" >/dev/null 2>&1 else __helm_debug "Listing directories in ." fi local result _arguments '*:dirname:_files -/'" ${flagPrefix}" result=$? if [ -n "$subdir" ]; then popd >/dev/null 2>&1 fi return $result else __helm_debug "Calling _describe" if eval _describe "completions" completions $flagPrefix $noSpace; then __helm_debug "_describe found some completions" # Return the success of having called _describe return 0 else __helm_debug "_describe did not find completions." __helm_debug "Checking if we should do file completion." if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then __helm_debug "deactivating file completion" # We must return an error code here to let zsh know that there were no # completions found by _describe; this is what will trigger other # matching algorithms to attempt to find completions. # For example zsh can match letters in the middle of words. return 1 else # Perform file completion __helm_debug "Activating file completion" # We must return the result of this command, so it must be the # last command, or else we must store its result to return it. _arguments '*:filename:_files'" ${flagPrefix}" fi fi fi } # don't run the completion function when being source-ed or eval-ed if [ "$funcstack[1]" = "_helm" ]; then _helm fi compdef _helm helm export ACK_GINKGO_DEPRECATIONS=1.16.5 # The next line updates PATH for the Google Cloud SDK. if [ -f '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/path.zsh.inc'; fi # The next line enables shell command completion for gcloud. if [ -f '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc' ]; then . '/Users/jacobbohanon/google-cloud-sdk/completion.zsh.inc'; fi alias startenvoydev="gcloud compute instances start bohanon-envoy-dev --zone us-central1-a --project solo-test-236622 && gcloud compute config-ssh --force-key-file-overwrite --project solo-test-236622" alias stopenvoydev="gcloud compute instances stop bohanon-envoy-dev --zone us-central1-a --project solo-test-236622" alias sshenvoydev="gcloud beta compute ssh --zone us-central1-a bohanon-envoy-dev --project solo-test-236622" export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion #compdef _kind kind # zsh completion for kind -*- shell-script -*- __kind_debug() { local file="$BASH_COMP_DEBUG_FILE" if [[ -n ${file} ]]; then echo "$*" >> "${file}" fi } _kind() { local shellCompDirectiveError=1 local shellCompDirectiveNoSpace=2 local shellCompDirectiveNoFileComp=4 local shellCompDirectiveFilterFileExt=8 local shellCompDirectiveFilterDirs=16 local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace local -a completions __kind_debug "\n========= starting completion logic ==========" __kind_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" # The user could have moved the cursor backwards on the command-line. # We need to trigger completion from the $CURRENT location, so we need # to truncate the command-line ($words) up to the $CURRENT location. # (We cannot use $CURSOR as its value does not work when a command is an alias.) words=("${=words[1,CURRENT]}") __kind_debug "Truncated words[*]: ${words[*]}," lastParam=${words[-1]} lastChar=${lastParam[-1]} __kind_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" # For zsh, when completing a flag with an = (e.g., kind -n=) # completions must be prefixed with the flag setopt local_options BASH_REMATCH if [[ "${lastParam}" =~ '-.*=' ]]; then # We are dealing with a flag with an = flagPrefix="-P ${BASH_REMATCH}" fi # Prepare the command to obtain completions requestComp="${words[1]} __complete ${words[2,-1]}" if [ "${lastChar}" = "" ]; then # If the last parameter is complete (there is a space following it) # We add an extra empty parameter so we can indicate this to the go completion code. __kind_debug "Adding extra empty parameter" requestComp="${requestComp} \"\"" fi __kind_debug "About to call: eval ${requestComp}" # Use eval to handle any environment variables and such out=$(eval ${requestComp} 2>/dev/null) __kind_debug "completion output: ${out}" # Extract the directive integer following a : from the last line local lastLine while IFS='\n' read -r line; do lastLine=${line} done < <(printf "%s\n" "${out[@]}") __kind_debug "last line: ${lastLine}" if [ "${lastLine[1]}" = : ]; then directive=${lastLine[2,-1]} # Remove the directive including the : and the newline local suffix (( suffix=${#lastLine}+2)) out=${out[1,-$suffix]} else # There is no directive specified. Leave $out as is. __kind_debug "No directive found. Setting do default" directive=0 fi __kind_debug "directive: ${directive}" __kind_debug "completions: ${out}" __kind_debug "flagPrefix: ${flagPrefix}" if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then __kind_debug "Completion received error. Ignoring completions." return fi while IFS='\n' read -r comp; do if [ -n "$comp" ]; then # If requested, completions are returned with a description. # The description is preceded by a TAB character. # For zsh's _describe, we need to use a : instead of a TAB. # We first need to escape any : as part of the completion itself. comp=${comp//:/\\:} local tab=$(printf '\t') comp=${comp//$tab/:} __kind_debug "Adding completion: ${comp}" completions+=${comp} lastComp=$comp fi done < <(printf "%s\n" "${out[@]}") if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then __kind_debug "Activating nospace." noSpace="-S ''" fi if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then # File extension filtering local filteringCmd filteringCmd='_files' for filter in ${completions[@]}; do if [ ${filter[1]} != '*' ]; then # zsh requires a glob pattern to do file filtering filter="\*.$filter" fi filteringCmd+=" -g $filter" done filteringCmd+=" ${flagPrefix}" __kind_debug "File filtering command: $filteringCmd" _arguments '*:filename:'"$filteringCmd" elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then # File completion for directories only local subDir subdir="${completions[1]}" if [ -n "$subdir" ]; then __kind_debug "Listing directories in $subdir" pushd "${subdir}" >/dev/null 2>&1 else __kind_debug "Listing directories in ." fi local result _arguments '*:dirname:_files -/'" ${flagPrefix}" result=$? if [ -n "$subdir" ]; then popd >/dev/null 2>&1 fi return $result else __kind_debug "Calling _describe" if eval _describe "completions" completions $flagPrefix $noSpace; then __kind_debug "_describe found some completions" # Return the success of having called _describe return 0 else __kind_debug "_describe did not find completions." __kind_debug "Checking if we should do file completion." if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then __kind_debug "deactivating file completion" # We must return an error code here to let zsh know that there were no # completions found by _describe; this is what will trigger other # matching algorithms to attempt to find completions. # For example zsh can match letters in the middle of words. return 1 else # Perform file completion __kind_debug "Activating file completion" # We must return the result of this command, so it must be the # last command, or else we must store its result to return it. _arguments '*:filename:_files'" ${flagPrefix}" fi fi fi } # don't run the completion function when being source-ed or eval-ed if [ "$funcstack[1]" = "_kind" ]; then _kind fi