# If you come from bash you might have to change your $PATH.
export GOPATH="$HOME/.go"
export PATH=$HOME/.bin:$HOME/var/bin:/usr/local/bin:$PATH:$HOME/.go/bin

export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="robbyrussell"

plugins=(git z fzf asdf direnv emacs yarn)

source $ZSH/oh-my-zsh.sh


# Example aliases
alias dj="poetry run python manage.py $argv"
alias sysu="systemctl --user $argv"
alias fsync="find . -type f -name '*.sync-conflict*'"
alias vi="vim $argv"
alias dus="du -sh * | sort -h"
alias rhea="ssh rhea.local"
alias pandora="ssh pandora.unbl.ink"
alias bastion="ssh bastion.unbl.ink"
alias pull="git pull --rebase --autostash"
alias push="git push"
alias asso="aws sso login --profile $argv"
alias bookpull="rsync --delete -avzichP root@rhea.local:/tank/books/ ~/.calibre/"
alias bookpush="rsync --delete -avzichP ~/.calibre/ root@rhea.local:/tank/books/"
alias chglg="git add ./changelog/ && git commit -m 'Add changelog' && git push"


newemail () {
	curl -X POST --user colin@unbl.ink:$(pass personal/colin@unbl.ink | head -n 1) -d "address=$1@unbl.ink" -d "forwards_to=colin@unbl.ink" https://box.unbl.ink/admin/mail/aliases/add
}

yayup () {
  mv ~/.asdf ~/.asdf.bak
  yay -S --noconfirm archlinux-keyring endeavouros-keyring
  yay -Syu --noconfirm
  mv ~/.asdf.bak ~/.asdf
}

repo_go() {
  asso registries-read
  export PRIVATE_REPO_TOKEN="$(aws codeartifact get-authorization-token --domain sure --query authorizationToken --output text --profile registries-read)"
  export CODEARTIFACT_AUTH_TOKEN="$PRIVATE_REPO_TOKEN"
  poetry config http-basic.codeartifact aws $PRIVATE_REPO_TOKEN
  aws codeartifact login --namespace sureapp --tool npm --repository npm --domain sure --domain-owner 348777858795 --profile registries-read
}

ghlogin() {
  npm login --registry=https://npm.pkg.github.com --scope=@sureapp
}

poetry-install() {
  repo_go
  poetry install
}

sush() {
  if [[ $1 == "sbx" ]]
  then
    asso sure-inc
    aws eks update-kubeconfig --name surepreme-sandbox-k8s-use1 --profile sure-inc
    kubectl exec -it $(kubectl get pods | fzf | awk '{print $1}'|head -n 1) -- bash
  fi

  if [[ $1 == "qa" ]]
  then
    asso np-farmers
    aws eks update-kubeconfig --name farmers-qa-k8s-use1 --profile np-farmers
    kubectl exec -it $(kubectl get pods | fzf | awk '{print $1}'|head -n 1) -- bash
  fi

  if [[ $1 == "prod" ]]
  then
    asso sure-inc
    aws eks update-kubeconfig --name surepreme-production-k8s-use1 --profile sure-inc
    kubectl exec -it -n bastion $(kubectl get pod -n bastion | grep "surepreme.*bastion" | head -n 1 | awk '{print $1}') -- bash
  fi
}

alias qa="sush qa"
alias sbx="sush sbx"
alias prod="sush prod"

prep_pg_for_sure() {
    psql -U sure postgres -c "CREATE USER sure SUPERUSER"
    psql -U sure postgres -c "CREATE USER surepremeroot SUPERUSER"
    psql -U sure postgres -c "CREATE USER rdsadmin SUPERUSER"
}
refresh_sure_db() {
    echo "This will likely take about 10 minutes"
    asso np-farmers
	aws s3 cp --profile np-farmers s3://farmers-qa-rds-exports/pg_dumps/farmers_latest.pgdump /tmp/qa_farmers_latest.pgdump
    dropdb -U sure surepreme --force
    createdb -U sure surepreme
    psql -U sure surepreme -c "CREATE EXTENSION postgis"
    pg_restore -d surepreme /tmp/qa_farmers_latest.pgdump
    rm /tmp/qa_farmers_latest.pgdump
    echo "Database `surepreme` successfully restores from QA data"
}

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

for f in ~/.dotfiles.sure/bash/*.sh; do source $f; done
for f in ~/.dotfiles.sure/direnv/*.sh; do source $f; done

eval "$(atuin init zsh)"
export AWS_PROFILE=sure-inc

local hostname="%{$fg_bold[white]%}%m"

PROMPT="${hostname} ${PROMPT}"
