[AUTOCONFIG] Add neovim autoconfig from .env
This commit is contained in:
parent
6e0b581da6
commit
93675f81a9
5 changed files with 79 additions and 129 deletions
11
.env
Normal file
11
.env
Normal file
|
@ -0,0 +1,11 @@
|
|||
# CURRENT SELECTED CONFIGURATION
|
||||
|
||||
# Available configuration (bash, zsh, fish)
|
||||
SHELL=zsh
|
||||
|
||||
# Available configuration (awesome, i3)
|
||||
WM=awesome
|
||||
|
||||
# Install neovim with custom configuration
|
||||
WITH_NEOVIM=yes
|
||||
|
36
install.sh
Normal file → Executable file
36
install.sh
Normal file → Executable file
|
@ -1,14 +1,28 @@
|
|||
#!/bin/bash
|
||||
source ./scripts/common.sh
|
||||
|
||||
OS_NAME=`cat /etc/os-release | grep "^NAME=" | sed 's/NAME=//g' | sed 's/"//g'`
|
||||
OS_NAME=${OS_NAME^^} # UPPERCASE
|
||||
if [ -f .env ]; then
|
||||
# Load Environment Variables
|
||||
export $(cat .env | grep -v '#' | awk '/=/ {print $1}')
|
||||
echo "[INFO] Environment file loaded"
|
||||
fi
|
||||
export OS_NAME=`cat /etc/os-release | grep "^NAME=" | sed 's/NAME=//g' | sed 's/"//g'`
|
||||
export OS_NAME=${OS_NAME,,} # LOWERCASE
|
||||
export CWD=$(pwd)
|
||||
|
||||
case $OS_NAME in
|
||||
"UBUNTU")
|
||||
source ./install_scripts/ubuntu.sh
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo "OS not supported"
|
||||
;;
|
||||
esac
|
||||
# Initialize
|
||||
|
||||
## Detect current package manager
|
||||
command_exists pacman && export PM=pacman
|
||||
|
||||
if ! [[ -z "${PM}" ]]; then
|
||||
echo "[INFO] Package manager set to : $PM"
|
||||
else
|
||||
echo '[ERROR] No package manager found. Aborting...' >&2
|
||||
fi
|
||||
|
||||
|
||||
find ./scripts -type f -iname "*.sh" -exec chmod +x {} \;
|
||||
|
||||
# Install and configure functionality
|
||||
./scripts/tools/neovim/install.sh
|
|
@ -1,118 +0,0 @@
|
|||
refresh_repo () {
|
||||
echo "Refreshing repo..."
|
||||
sudo apt update
|
||||
}
|
||||
|
||||
install_fish() {
|
||||
refresh_repo
|
||||
echo "Installing fish..."
|
||||
sudo apt install fish -y
|
||||
echo "Success"
|
||||
read -p "Install oh-my-fish ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
curl -L https://get.oh-my.fish | fish
|
||||
echo "Success"
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
read -p "Set to default shell ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
FISH_BIN=`which fish`
|
||||
chsh -s "$FISH_BIN" "$USER"
|
||||
echo "Success"
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
read -p "Install agnoster theme ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
fish -c "omf install agnoster"
|
||||
echo "Success"
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_zsh() {
|
||||
refresh_repo
|
||||
echo "Installing zsh..."
|
||||
sudo apt install zsh -y
|
||||
echo "Success"
|
||||
read -p "Install oh-my-zsh ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
echo "Success"
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
read -p "Set to default shell ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
ZSH_BIN=`which zsh`
|
||||
chsh -s "$ZSH_BIN" "$USER"
|
||||
echo "Success"
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_neovim () {
|
||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
||||
refresh_repo
|
||||
sudo apt-get install neovim -y
|
||||
echo "Success"
|
||||
read -p "Install custom config (Warning : Erase old conf) ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
rm -rf ~/.config/nvim
|
||||
mkdir -p ~/.config/nvim
|
||||
cp -r ./configs/nvim/* ~/.config/nvim
|
||||
refresh_repo
|
||||
sudo apt install ripgrep ruby-dev -y
|
||||
gem install --user-install solargraph
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
source ~/.cargo/env
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
start () {
|
||||
read -p "Select you shell. (0 - current, 1 - fish, 2 - zsh) [0] " shell
|
||||
case $shell in
|
||||
"1")
|
||||
install_fish
|
||||
;;
|
||||
"2")
|
||||
install_zsh
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
read -p "Install nvim 0.5 ? (y/n) [n] " ok
|
||||
case $ok in
|
||||
[yY]*)
|
||||
install_neovim
|
||||
;;
|
||||
*)
|
||||
echo "No modification"
|
||||
;;
|
||||
esac
|
||||
}
|
22
scripts/common.sh
Executable file
22
scripts/common.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
command_exists () {
|
||||
type "$1" &> /dev/null
|
||||
}
|
||||
|
||||
install_package () {
|
||||
if [[ "$PM" == 'pacman' ]]; then
|
||||
sudo pacman -S --noconfirm "$@"
|
||||
echo "[INFO] Finished to install $@"
|
||||
else
|
||||
echo '[ERROR] Package manager not supported' >&2
|
||||
fi
|
||||
}
|
||||
|
||||
remove_package () {
|
||||
if [[ "$PM" == 'pacman' ]]; then
|
||||
sudo pacman -R --noconfirm "$@"
|
||||
echo "[INFO] Finished to remove $@"
|
||||
else
|
||||
echo '[ERROR] Package manager not supported' >&2
|
||||
fi
|
||||
}
|
21
scripts/tools/neovim/install.sh
Executable file
21
scripts/tools/neovim/install.sh
Executable file
|
@ -0,0 +1,21 @@
|
|||
source ./scripts/common.sh
|
||||
|
||||
if [[ "$WITH_NEOVIM" == 'yes' ]]; then
|
||||
if ! command_exists nvim; then
|
||||
install_package neovim
|
||||
echo '[INFO] Neovim installed'
|
||||
else
|
||||
echo '[INFO] Neovim already installed'
|
||||
fi
|
||||
|
||||
if [[ ! -d "$HOME/.config/nvim" ]]; then
|
||||
ln -s "$CWD/configs/nvim" "$HOME/.config/nvim"
|
||||
echo "[INFO] Neovim config linked with symbolic link : $CWD/configs/nvim -> $HOME/.config/nvim"
|
||||
|
||||
install_package ripgrep fd dart lazygit rust-analyzer lldb
|
||||
else
|
||||
echo '[INFO] Neovim config already linked'
|
||||
fi
|
||||
else
|
||||
echo '[INFO] WITH_NEOVIM not equals to yes. Ignoring...'
|
||||
fi
|
Loading…
Reference in a new issue