[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
|
#!/bin/bash
|
||||||
|
source ./scripts/common.sh
|
||||||
|
|
||||||
OS_NAME=`cat /etc/os-release | grep "^NAME=" | sed 's/NAME=//g' | sed 's/"//g'`
|
if [ -f .env ]; then
|
||||||
OS_NAME=${OS_NAME^^} # UPPERCASE
|
# 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
|
# Initialize
|
||||||
"UBUNTU")
|
|
||||||
source ./install_scripts/ubuntu.sh
|
## Detect current package manager
|
||||||
start
|
command_exists pacman && export PM=pacman
|
||||||
;;
|
|
||||||
*)
|
if ! [[ -z "${PM}" ]]; then
|
||||||
echo "OS not supported"
|
echo "[INFO] Package manager set to : $PM"
|
||||||
;;
|
else
|
||||||
esac
|
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