install.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. "Installing plugins..."
  29. nvim --headless +PlugInstall +qall > /dev/null 2>&1
  30. }
  31. # Welcome
  32. echo 'Installing Nvim Mach 2'
  33. # install node and neovim support
  34. which node > /dev/null && echo "node installed, moving on..." || installnode
  35. # install pip
  36. which pip > /dev/null && echo "pip installed, moving on..." || installpynvim
  37. # install pynvim
  38. pip list | grep pynvim > /dev/null && echo "pynvim installed, moving on..." || installpynvim
  39. # pull config down
  40. [ -d "$HOME/.config/nvim" ] && moveoldnvim
  41. cloneconfig
  42. # install plugins
  43. which neovim > /dev/null && installplugins
  44. # Install extensions
  45. mkdir -p ~/.config/coc/extensions
  46. cd ~/.config/coc/extensions
  47. if [ ! -f package.json ]
  48. then
  49. echo '{"dependencies":{}}'> package.json
  50. fi
  51. # Change extension names to the extensions you need
  52. npm install coc-explorer coc-snippets coc-json --global-style --ignore-scripts --no-bin-links --no-package-lock --only=prod