diff --git a/Makefile b/Makefile index 7e93806..9828ac4 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +.PHONY: all test PRE_COMMIT_ENV ?= .pre_commit_env PRE_COMMIT_ENV_BIN ?= $(PRE_COMMIT_ENV)/bin @@ -12,6 +13,10 @@ install: update: sh ./update-plugins.sh +.PHONY: install-language-servers +install-language-servers: + sh ./install-language-servers.sh + .PHONY: uninstall uninstall: rm ~/.vimrc diff --git a/install-language-servers.sh b/install-language-servers.sh index 9c79994..16d5c7f 100755 --- a/install-language-servers.sh +++ b/install-language-servers.sh @@ -1,52 +1,96 @@ #! /bin/bash +set -e + +# Determines if a command exists or not +function command_exist() { + command -v "$1" > /dev/null 2>&1; +} + +# Runs a command or spits out the output +function maybe_run() { + if command_exist "$1" ;then + echo "> $*" + eval $* + else + echo "ERROR: $1 does not exist. Could not run $*" + fi +} + ## Language servers +function install_language_servers() { + echo "### Installing language servers..." -# bash -npm install -g bash-language-server + # bash + maybe_run npm install -g bash-language-server -# Kotlin -# https://github.com/fwcd/kotlin-language-server/blob/master/BUILDING.md + # Kotlin + # https://github.com/fwcd/kotlin-language-server/blob/master/BUILDING.md -# Python -pip install --user python-language-server -pip3 install --user python-language-server + # Python + maybe_run pip install --user python-language-server + maybe_run pip3 install --user python-language-server -# Rust -rustup component add rls rust-analysis rust-src + # Rust + maybe_run rustup component add rls rust-analysis rust-src + + echo "" +} ## Linters +function install_linters() { + echo "### Installing linters..." -# Python -pip install flake8 mypy + # Python + maybe_run pip install --user flake8 + maybe_run pip install --user mypy || echo "WARNING: mypy is py3 only" + maybe_run pip3 install --user flake8 mypy -# CSS -npm install -g csslint + # CSS + maybe_run npm install -g csslint -# Vim -pip install --user vim-vint -pip3 install --user vim-vint + # Vim + maybe_run pip install --user vim-vint + maybe_run pip3 install --user vim-vint -# YAML -pip install --user yamllint -pip3 install --user yamllint + # YAML + maybe_run pip install --user yamllint + maybe_run pip3 install --user yamllint -# Text / Markdown -npm install -g alex -pip install --user proselint -pip3 install --user proselint + # Text / Markdown + maybe_run npm install -g alex + maybe_run pip install --user proselint + maybe_run pip3 install --user proselint -# Makefile -# https://github.com/mrtazz/checkmake + # Makefile + maybe_run go get -u github.com/mrtazz/checkmake + + echo "" +} ## Fixers +function install_fixers() { + echo "### Installing fixers..." + # CSS/JS/HTML/JSON/YAML/Markdown/and more! + maybe_run npm install -g prettier -# CSS/JS/HTML/JSON/YAML/Markdown/and more! -npm install -g prettier + # Python + maybe_run pip install --user autopep8 reorder-python-imports + maybe_run pip install --user black || echo "WARNING: mypy is py3 only" + maybe_run pip3 install --user black autopep8 reorder-python-imports -# Python -pip install --user black autopep8 reorder-python-imports -pip3 install --user black autopep8 reorder-python-imports + # Rust + maybe_run rustup component add rustfmt -# Rust -rustup component add rustfmt + echo "" +} + +function main() { + install_language_servers + install_linters + install_fixers + echo "" + echo "DONE" +} + +main