diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..c474a8c --- /dev/null +++ b/install.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +# Function to display a message +show_message() { + echo -e "\n==========================================================" + echo -e "$1" + echo -e "==========================================================\n" +} + +# Function to prompt user with a yes/no question +ask_question() { + while true; do + read -rp "$1 [y/n]: " yn + case $yn in + [Yy]*) return 0 ;; + [Nn]*) return 1 ;; + *) echo "Please answer yes or no." ;; + esac + done +} + +# Welcome message +show_message "Welcome to the Rootiest Neovim Installer" + +# Look for neovim executable +if ! command -v nvim &>/dev/null; then + show_message "Neovim executable not found." + if ! ask_question "Would you like to install it now?"; then + show_message "Installation aborted by the user." + else + # Download neovim appimage + mkdir -p ~/AppImages + wget https://github.com/neovim/neovim/releases/latest/download/nvim.appimage ~/AppImages/nvim.appimage + chmod +x ~/AppImages/nvim.appimage + # Add neovim appimage to PATH + export PATH=\"\$HOME/AppImages:\$PATH + # Save neovim appimage to PATH in .bashrc + echo "export PATH=\"\$HOME/AppImages:\$PATH\"" >>~/.bashrc + # Save neovim appimage to PATH in .zshrc + echo "export PATH=\"\$HOME/AppImages:\$PATH\"" >>~/.zshrc + # Save neovim appimage to PATH in .config/fish/config.fish + echo "set PATH \$HOME/AppImages \$PATH" >>~/.config/fish/config.fish + fi +fi + +# Initial prompt to proceed with installation +if ! ask_question "Do you want to install the Rootiest Neovim configuration?"; then + show_message "Installation aborted by the user." + exit 1 +fi + +# Check if existing config is present and move to backup if confirmed +if [ -d ~/.config/nvim ]; then + if ask_question "Existing Neovim configuration found. Do you want to backup and replace it?"; then + mv ~/.config/nvim ~/.config/nvim.bkp + show_message "Existing configuration has been backed up to ~/.config/nvim.bkp" + else + show_message "Operation aborted by the user." + exit 1 + fi +fi + +# Download rootiest neovim config +if git clone https://github.com/rootiest/rootiest-nvim ~/.config/nvim; then + show_message "Rootiest Neovim configuration has been downloaded." +else + show_message "Failed to download the configuration." + exit 1 +fi + +# Start neovim +if ask_question "Do you want to start Neovim now?"; then + nvim +else + show_message "Neovim installation has been completed." +fi