# Set up the prompt

autoload -Uz promptinit
promptinit
prompt adam1
# Use modern completion system
autoload -Uz compinit
compinit

export PATH="$PATH:/workspace/scripts:/usr/local/bin:/usr/bin:/bin:$HOME/bin:/usr/local/cargo/bin"
export PATH="$HOME/.pgenv/bin:$HOME/.pgenv/pgsql/bin:$PATH"

setopt histignorealldups sharehistory

ZSH_THEME=robbyrussell
# export ZSH_THEME="powerlevel10k/powerlevel10k"

plugins=(
  git 
  zsh-autosuggestions 
  zsh-syntax-highlighting 
  fast-syntax-highlighting 
)
# eval "$(starship init zsh)"

PROMPT="%{$fg[white]%}%n@%{$fg[green]%}%m%{$reset_color%} ${PROMPT}"

setopt autocd

# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history


zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
# eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

# zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
# zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'


alias g=git
alias gnp="git --no-pager"
alias ct='cargo test -- --nocapture --color=always'

# Git aliases.
alias g='git'
alias gst='git status'
alias gcm='git checkout main'
alias c=clear
alias gp='git push'
alias gcam='git commit -a -m'
alias gpsup="git push --set-upstream origin $(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||')"
alias gcb='git checkout -b'
alias gcr='f() { git checkout -b $1 origin/$1; }; f'
alias gitsetup='git config --global user.name \$NAME && git config --global user.email \$EMAIL'
alias gsu='git submodule update --recursive --remote'
alias gdb='git branch | grep -v "main" | xargs git branch -D'

# Database
alias dburl='export DATABASE_URL=$(kubectl get secret database-urls -n testkit -o jsonpath="{.data.migrations-url}" | base64 --decode | sed "s/db-cluster-rw:5432/localhost:5432/")'
# dbport doesn't stay open for postgres https://github.com/kubernetes/kubernetes/issues/111825
alias dbport='kubectl port-forward -n testkit db-cluster-1 5432:5432'
alias dbmate='dbmate --no-dump-schema --migrations-dir /workspace/migrations'
alias dbdown='while dbmate down; do :; done'
alias db='psql $DATABASE_URL'
alias dbapp='psql $APP_DATABASE_URL'
alias dbmatereset='dbmate drop; dbmate create; dbmate up'
alias ct='cargo test -- --nocapture --color=always'

alias p='sudo chmod 777 /var/run/docker.sock'

# Kind cluster
alias kc='kind export kubeconfig --name testkit-cluster && sed -i "s,https://0.0.0.0,https://host.docker.internal,g" ~/.kube/config'
alias kdburl='export DATABASE_URL=$(kubectl get secret database-urls -n testkit -o jsonpath="{.data.migrations-url}" | base64 --decode | sed "s/db-cluster-rw:5432/host.docker.internal:5432/")'

# mirrord
alias ma='mirrord exec -n testkit --steal -t deployment/testkit cargo watch -- --workdir /workspace/ -w crates/daisy-rsx -w crates/ui-pages -w crates/axum-server -w crates/db -w crates/asset-pipeline/dist -w crates/asset-pipeline/images --no-gitignore -x "run --bin axum-server"'

# Spell check
alias spell='docker run --rm -ti -v $HOST_PROJECT_PATH/website/content:/workdir tmaier/markdown-spellcheck:latest "**/*.md"'

# Ollama
alias ollama='docker exec -it testkit_devcontainer_llm-api_1 ollama'

git config core.hooksPath /workspace/.devcontainer/.githooks