install.sh 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/bash
  2. set -o nounset # error when referencing undefined variable
  3. set -o errexit # exit when command fails
  4. installnode() { \
  5. echo "Installing node..."
  6. curl -sL install-node.now.sh/lts | bash
  7. npm i -g neovim
  8. }
  9. installpip() { \
  10. echo "Installing pip..."
  11. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  12. python3 get-pip.py
  13. rm get-pip.py
  14. }
  15. installpynvim() { \
  16. echo "Installing pynvim..."
  17. pip install pynvim
  18. }
  19. cloneconfig() { \
  20. echo "Cloning Nvim Mach 2 configuration"
  21. git clone https://github.com/ChristianChiarulli/nvim.git ~/.config/nvim
  22. }
  23. moveoldnvim() { \
  24. echo "Moving your config to nvim.old"
  25. mv $HOME/.config/nvim $HOME/.config/nvim.old
  26. }
  27. installplugins() { \
  28. mv $HOME/.config/nvim/init.vim $HOME/.config/nvim/init.vim.tmp
  29. mv $HOME/.config/nvim/utils/init.vim $HOME/.config/nvim/init.vim
  30. "Installing plugins..."
  31. nvim --headless +PlugInstall +qall > /dev/null 2>&1
  32. mv $HOME/.config/nvim/init.vim $HOME/.config/nvim/utils/init.vim
  33. mv $HOME/.config/nvim/init.vim.tmp $HOME/.config/nvim/init.vim
  34. }
  35. # Welcome
  36. echo 'Installing Nvim Mach 2'
  37. # install node and neovim support
  38. which node > /dev/null && echo "node installed, moving on..." || installnode
  39. # install pip
  40. which pip > /dev/null && echo "pip installed, moving on..." || installpip
  41. # install pynvim
  42. pip list | grep pynvim > /dev/null && echo "pynvim installed, moving on..." || installpynvim
  43. # pull config down
  44. [ -d "$HOME/.config/nvim" ] && moveoldnvim
  45. cloneconfig
  46. # install plugins
  47. which nvim > /dev/null && installplugins
  48. # Install extensions
  49. mkdir -p ~/.config/coc/extensions
  50. cd ~/.config/coc/extensions
  51. if [ ! -f package.json ]
  52. then
  53. echo '{"dependencies":{}}'> package.json
  54. fi
  55. # Change extension names to the extensions you need
  56. npm install coc-explorer coc-snippets coc-json --global-style --ignore-scripts --no-bin-links --no-package-lock --only=prod