#!{{ lookPath "bash" }}

# Load asdf
. "$HOME/.asdf/asdf.sh"

# Logging function
log() {
  printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1"
}

inf() {
  printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1"
}



# Plugins to install
declare -A plugins
plugins=(
  ['direnv']=''
  ['golang']='https://github.com/asdf-community/asdf-golang.git'
  ['nodejs']='https://github.com/asdf-vm/asdf-nodejs.git'
  ['opam']='https://github.com/asdf-community/asdf-opam.git'
  ['ruby']='https://github.com/asdf-vm/asdf-ruby.git'
  ['rust']='https://github.com/code-lever/asdf-rust.git'
  ['starship']=''
)



### Install ASDF plugins ###
log "Begin ASDF plugins installation"

inf "installing direnv with system version..."
# no need to run asdf direnv setup --shell zsh --version latest
# as it is managed by zim module
asdf plugin-add direnv

for plugin in ${!plugins[@]}; do
  inf "installing ${plugin}..."

  asdf plugin add ${plugin} ${plugins[$plugin]}
  asdf install ${plugin} latest
  asdf global ${plugin} latest
done

inf "initializing opam..."
opam init

log "Finish ASDF plugins installation"