#!/usr/bin/env bash set -o errexit set -o nounset set -o pipefail if [ -z ${1+x} ]; then echo "ERROR: Please specify the version of neovim that you want to install" exit 1 fi VERSION="$( echo ${1} | sed 's/v//g' )" echo "Installing neovim version ${VERSION}" INSTALLATION_DIR="${HOME}/.local/opt/nvim" SYMLINK="${HOME}/.local/bin/nvim" DOWNLOAD_DIR="${HOME}/Downloads/nvim-${VERSION}" if [[ -d "${INSTALLATION_DIR}" ]]; then echo "Moving ${INSTALLATION_DIR} to ${INSTALLATION_DIR}.previous" mv "${INSTALLATION_DIR}" "${INSTALLATION_DIR}.previous" fi echo "Creating ${INSTALLATION_DIR}" mkdir "${INSTALLATION_DIR}" echo "Downloading neovim to ${DOWNLOAD_DIR}" mkdir "${DOWNLOAD_DIR}" curl -s \ -L "https://github.com/neovim/neovim/releases/download/v${VERSION}/nvim-linux64.tar.gz" \ -o "${DOWNLOAD_DIR}/nvim-linux64.tar.gz" curl -s \ -L "https://github.com/neovim/neovim/releases/download/v${VERSION}/nvim-linux64.tar.gz.sha256sum" \ -o "${DOWNLOAD_DIR}/nvim-linux64.tar.gz.sha256sum" echo "Verifying the package" cd "${DOWNLOAD_DIR}" sha256sum --check nvim-linux64.tar.gz.sha256sum # extract contents to the installation directory echo "Extracting the package to ${INSTALLATION_DIR}" tar xzf "${DOWNLOAD_DIR}/nvim-linux64.tar.gz" --strip-components=1 -C "${INSTALLATION_DIR}" # create the symlink echo "Creating the symbolic link ${SYMLINK}" ln -sf "${INSTALLATION_DIR}/bin/nvim" "${SYMLINK}"