blob: 1353f431ca92691e8a740cd363597d4d367cbd6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#!/bin/bash
set -o nounset # error when referencing undefined variable
set -o errexit # exit when command fails
installnodemac() { \
brew install node
}
installnodeubuntu() { \
sudo apt install nodejs
}
installnodearch() { \
sudo pacman -S nodejs
}
installnode() { \
echo "Installing node..."
[ "$(uname)" == "Darwin" ] && installnodemac
[ -n "$(uname -a | grep Ubuntu)" ] && installnodeubuntu
[ -f "/etc/arch-release" ] && installnodearch
[ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ] && echo "Windows not currently supported"
npm i -g neovim
}
installpip() { \
echo "Installing pip..."
sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
rm get-pip.py
}
installpynvim() { \
echo "Installing pynvim..."
pip3 install pynvim
}
installcocextensions() { \
# Install extensions
mkdir -p ~/.config/coc/extensions
cd ~/.config/coc/extensions
[ ! -f package.json ] && echo '{"dependencies":{}}'> package.json
# Change extension names to the extensions you need
npm install coc-explorer coc-snippets coc-json --global-style --ignore-scripts --no-bin-links --no-package-lock --only=prod
}
cloneconfig() { \
echo "Cloning Nvim Mach 2 configuration"
git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim
}
moveoldnvim() { \
echo "Moving your config to nvim.old"
mv $HOME/.config/nvim $HOME/.config/nvim.old
}
installplugins() { \
mv $HOME/.config/nvim/init.vim $HOME/.config/nvim/init.vim.tmp
mv $HOME/.config/nvim/utils/init.vim $HOME/.config/nvim/init.vim
echo "Installing plugins..."
nvim --headless +PlugInstall +qall > /dev/null 2>&1
mv $HOME/.config/nvim/init.vim $HOME/.config/nvim/utils/init.vim
mv $HOME/.config/nvim/init.vim.tmp $HOME/.config/nvim/init.vim
}
asktoinstallnode() { \
echo "node not found"
echo -n "Would you like to install node now (y/n)? "
read answer
[ "$answer" != "${answer#[Yy]}" ] && installnode && installcocextensions
}
asktoinstallpip() { \
echo "pip not found"
echo -n "Would you like to install pip now (y/n)? "
read answer
[ "$answer" != "${answer#[Yy]}" ] && installpip
}
installonmac() { \
brew install ripgrep fzf ranger
}
pipinstallueberzug() { \
which pip3 > /dev/null && pip3 install ueberzug || echo "Not installing ueberzug pip not found"
}
installonubuntu() { \
sudo apt install ripgrep fzf ranger
pipinstallueberzug
}
installonarch() { \
sudo pacman -S install ripgrep fzf ranger
which yay > /dev/null && yay -S python-ueberzug-git || pipinstallueberzug
}
installextrapackages() { \
[ "$(uname)" == "Darwin" ] && installonmac
[ -n "$(uname -a | grep Ubuntu)" ] && installonubuntu
[ -f "/etc/arch-release" ] && installonarch
[ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ] && echo "Windows not currently supported"
}
# Welcome
echo 'Installing Nvim Mach 2'
# install node and neovim support
which node > /dev/null && echo "node installed, moving on..."
# install pip
which pip3 > /dev/null && echo "pip installed, moving on..."
# install pynvim
pip3 list | grep pynvim > /dev/null && echo "pynvim installed, moving on..." || installpynvim
# move old nvim directory if it exists
[ -d "$HOME/.config/nvim" ] && moveoldnvim
# clone config down
cloneconfig
echo "Nvim Mach 2 is better with at least ripgrep, ueberzug and ranger"
echo -n "Would you like to install these now? (y/n)? "
read answer
[ "$answer" != "${answer#[Yy]}" ] && installextrapackages || echo "not installing extra packages"
# install plugins
which nvim > /dev/null && installplugins
|