#!/bin/bash

mkdir -p /etc/root 2> /dev/null
rootperm=$?
if [ $rootperm -eq 0 ] ; then
  rm -rf /etc/root
else
  echo "Root permission is required to run this script"
  exit
fi

install_neovim_gen(){
  version_download="${1}"
  echo "Downloading neovim"
  rm -rf /tmp/neovim.tar.gz
  #neovim_urlfile="https://github.com/neovim/neovim/releases/download/${version_download}/nvim-linux-x86_64.tar.gz"
  neovim_urlfile="https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz"
  wget -q --show-progress -c "${neovim_urlfile}" -O /tmp/neovim.tar.gz
  echo "Installing neovim"
  if [ -f /tmp/neovim.tar.gz ] ; then
    cd /tmp/
    tar zxf neovim.tar.gz
    rm -rf /opt/nvim
    cp -rf /tmp/nvim-linux-x86_64 /opt/nvim
    rm -rf /usr/bin/nvim
    echo '#!/bin/bash' > /usr/bin/nvim
    echo '' >> /usr/bin/nvim
    echo '/opt/nvim/bin/nvim "${@}"' >> /usr/bin/nvim
    chmod +x /usr/bin/nvim
    chmod +x /opt/nvim/bin/nvim
    unlink /usr/bin/vim
    ln -s /usr/bin/nvim /usr/bin/vim
    cp -rf /tmp/nvim-linux-x86_64/share /usr/share/
  fi
  rm -rf /tmp/neovim.tar.gz
  rm -rf /tmp/nvim-linux-x86_64
  echo "Installation neovim done"
}

echo "Checking neovim version"
if [ -f /etc/neovim_version.conf ] ; then
  touch /etc/neovim_version.conf
else
  echo "none" > /etc/neovim_version.conf
fi
version_neovim=$(curl "https://github.com/neovim/neovim/releases" 2> /dev/null | grep "releases/tag" | grep -v "nightly" | head -1 | cut -d "=" -f 4 | cut -d "/" -f 6 | cut -d '"' -f 1)
version_neovim_current=$(cat /etc/neovim_version.conf)
if [ "${version_neovim}" != "${version_neovim_current}" ] ; then
  echo "New neovim version detected"
  install_neovim_gen "${version_neovim}"
  error_install=$?
  if [ ${error_install} -eq 0 ] ; then
    echo "${version_neovim}" > /etc/neovim_version.conf
  fi
else
  echo "No updates for neovim"
fi
