#!/usr/bin/env bash

# Load asdf
# as we need cargo and it is installed from
. "$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"
}



# Environment variables
ZIMDIR=${HOME}/.zim

# Packages to install
packages=(
  zsh
)



### Install Zsh ###
log "Begin Zsh installation"

{{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}}

  ## Update system
  inf "updating system..."
  yay -Syu --noconfirm --quiet

  ## install packages
  for package in ${packages[@]}; do
    if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then
      inf "installing ${package}..."
      yay -S --noconfirm --quiet $package
    fi
  done

{{ else if (eq .chezmoi.osRelease.id "debian" "ubuntu") -}}
  export DEBIAN_FRONTEND=noninteractive

  ## Update system
  inf "updating system..."
  {{- if ne .chezmoi.username "root" }}
    sudo -E apt update -qq
    sudo -E apt upgrade --yes -qq
  {{- else }}
    apt update -qq
    apt upgrade --yes -qq
  {{- end}}

  ## packages=(${packages[@]//starship/})

  ## install packages
  for package in ${packages[@]}; do
    inf "installing ${package}..."

    {{- if ne .chezmoi.username "root" }}
      sudo -E apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
    {{- else }}
      apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
    {{- end }}
  done

  ## inf "installing starship..."
  ## mist install starship-bin

{{- end }}

log "Finish Zsh installation"


## Install Atuin
log "Installing atuin"

cargo install atuin
ln -s ~/.asdf/installs/rust/1.76.0/bin/atuin .asdf/shims/atuin

log "Finish atuin installation"


### Config Zsh ###
log "Installing Zim Framework"

$(which zsh) -c "source ${ZIMDIR}/zimfw.zsh init -q"

log "Finish zsh installation"

