-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinstall.sh
More file actions
143 lines (115 loc) · 3.54 KB
/
install.sh
File metadata and controls
143 lines (115 loc) · 3.54 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash
set -e
# Function to print messages
log() {
echo -e "\033[1;32m$1\033[0m"
}
# Use sudo only if not running as root
run() {
if [[ $EUID -ne 0 ]]; then
sudo "$@"
else
"$@"
fi
}
# Detect OS
OS="$(uname -s)"
IS_MAC=false
IS_LINUX=false
if [[ "$OS" == "Darwin" ]]; then
IS_MAC=true
elif [[ "$OS" == "Linux" ]]; then
IS_LINUX=true
else
log "Unsupported OS: $OS"
exit 1
fi
log "install dependency ..."
chmod +x install_depdendency.sh
bash install_depdendency.sh
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Load nvm immediately for this script
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion"
fi
VIM_DIR=${HOME}/.config/nvim
log "Install Neovim ..."
if $IS_MAC; then
NVIM_FILENAME="nvim-macos-x86_64"
else
NVIM_FILENAME="nvim-linux-x86_64"
fi
wget https://github.com/neovim/neovim/releases/download/stable/$NVIM_FILENAME.tar.gz
tar -xzf $NVIM_FILENAME.tar.gz
rm $NVIM_FILENAME.tar.gz
run rm -rf /opt/nvim
run mv $NVIM_FILENAME /opt/nvim
run rm -f /usr/local/bin/nvim
run ln -s /opt/nvim/bin/nvim /usr/local/bin/nvim
if ! command -v nvim &>/dev/null; then
log "Error: Neovim (nvim) not found after installation. Exiting."
exit 1
fi
python3 -m pip install --user --upgrade pynvim
log "Install Lua ..."
if $IS_MAC; then
brew install lua@5.4
else
run apt-get install -y lua5.4
fi
log "Install vimrc ..."
if [[ -e ${VIM_DIR} ]]; then
log "${VIM_DIR} already exists. Backing it up to ${HOME}/.vim_bak"
rm -rf ${HOME}/.vim_bak
mv ${VIM_DIR} ${HOME}/.vim_bak
fi
mkdir -p ${VIM_DIR}
cp init.nvim ${VIM_DIR}/init.vim
log "Install colors ..."
mkdir -p ${VIM_DIR}/colors
wget https://raw.githubusercontent.com/joshdick/onedark.vim/main/colors/onedark.vim -O ${VIM_DIR}/colors/onedark.vim
mkdir -p ${VIM_DIR}/autoload
wget https://raw.githubusercontent.com/joshdick/onedark.vim/main/autoload/onedark.vim -O ${VIM_DIR}/autoload/onedark.vim
log "Apply CoC Settings ..."
cp ${PWD}/coc-settings.json ${VIM_DIR}/coc-settings.json
PYTHONPATH=$(which python3)
log "PYTHON3 BINARY: ${PYTHONPATH}"
ESCAPED="${PYTHONPATH//\//\\/}"
if $IS_MAC; then
sed -i '' "s/\"python.pythonPath\": \"python3\"/\"python.pythonPath\": \"${ESCAPED}\"/" ${VIM_DIR}/coc-settings.json
else
sed -i "s/\"python.pythonPath\": \"python3\"/\"python.pythonPath\": \"${ESCAPED}\"/" ${VIM_DIR}/coc-settings.json
fi
log "Install vim-plug ..."
curl -fLo ${HOME}/.local/share/nvim/site/autoload/plug.vim \
--create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
log "Install ctags ..."
if $IS_MAC; then
brew install ctags
else
run apt-get install -y exuberant-ctags
fi
log "Install Language Server Dependencies ..."
pip3 install -q autopep8 flake8
npm install -g bash-language-server
npm install -g eslint eslint-plugin-vue -D
npm install -g dockerfile-language-server-nodejs
npm install -g @types/react @types/react-dom -D
if $IS_MAC; then
brew install ccls
else
run apt-get install -y ccls
fi
nvim -c 'PlugInstall' -c 'qa!'
log "Apply CoC Python Snippets ..."
mkdir -p ${HOME}/.config/coc/ultisnips
cp ${PWD}/snippets/* ${HOME}/.config/coc/ultisnips/
log "alias vim=nvim ..."
run ln -sf $(which nvim) /usr/local/bin/vim
log "Install CoC Language Servers ..."
echo ':CocInstall -sync coc-snippets coc-pyright coc-json coc-java coc-tsserver coc-html coc-css coc-vetur coc-cmake|q' > coc_install.vim
nvim -s coc_install.vim
rm coc_install.vim
log "awesome-vim-setting is finished!"