#!{{ lookPath "bash" }}

# 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"
}



# Packages to install
packages=(
  neovim
  python-pip
  python-pynvim
  ripgrep
)

# LVim version
lvim_version="1.4"



log "Begin LVim installation"

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

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

  ## Install packages
  for package in ${packages[@]}; do
    if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then
      inf "installing ${package}..."
      yay -S --noconfirm --removemake --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}}

  ## Install packages
  ## packages[1]=golang
  packages=(${packages[@]/python/python3})
  packages=(${packages[@]/neovim/})
  packages+=(python3-venv)

  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 neovim..."
  mist install neovim

{{- end }}

inf "installing lvim..."
LV_BRANCH="release-${lvim_version}/neovim-0.9" bash <(curl -s "https://raw.githubusercontent.com/LunarVim/LunarVim/release-${lvim_version}/neovim-0.9/utils/installer/install.sh")

log "Finish LVim installation"