2019-10-24 19:40:10 +00:00
|
|
|
#! /bin/bash
|
2019-10-29 21:55:44 +00:00
|
|
|
set -e
|
|
|
|
|
2019-11-20 23:19:14 +00:00
|
|
|
# Clear explicit PYTHONPATH since this gets confused between py2 and py3
|
|
|
|
export PYTHONPATH=""
|
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Determines if a command exists or not
|
|
|
|
function command_exist() {
|
2021-06-09 17:19:03 +00:00
|
|
|
command -v "$1" > /dev/null 2>&1;
|
2019-10-29 21:55:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Runs a command or spits out the output
|
|
|
|
function maybe_run() {
|
|
|
|
if command_exist "$1" ;then
|
|
|
|
echo "> $*"
|
2019-11-20 23:19:14 +00:00
|
|
|
# shellcheck disable=2048,2086
|
2019-10-29 21:55:44 +00:00
|
|
|
eval $*
|
|
|
|
else
|
|
|
|
echo "ERROR: $1 does not exist. Could not run $*"
|
|
|
|
fi
|
|
|
|
}
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
## Language servers
|
|
|
|
function install_language_servers() {
|
|
|
|
echo "### Installing language servers..."
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# bash
|
|
|
|
maybe_run npm install -g bash-language-server
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Kotlin
|
|
|
|
# https://github.com/fwcd/kotlin-language-server/blob/master/BUILDING.md
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Python
|
|
|
|
maybe_run pip install --user python-language-server
|
|
|
|
maybe_run pip3 install --user python-language-server
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Rust
|
2019-11-20 23:19:14 +00:00
|
|
|
maybe_run rustup component add rls rustfmt rust-analysis rust-src
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
echo ""
|
|
|
|
}
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
## Linters
|
|
|
|
function install_linters() {
|
|
|
|
echo "### Installing linters..."
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# 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
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# CSS
|
|
|
|
maybe_run npm install -g csslint
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Vim
|
|
|
|
maybe_run pip install --user vim-vint
|
|
|
|
maybe_run pip3 install --user vim-vint
|
2019-10-29 19:33:08 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# YAML
|
|
|
|
maybe_run pip install --user yamllint
|
|
|
|
maybe_run pip3 install --user yamllint
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Text / Markdown
|
|
|
|
maybe_run npm install -g alex
|
|
|
|
maybe_run pip install --user proselint
|
|
|
|
maybe_run pip3 install --user proselint
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
# Makefile
|
|
|
|
maybe_run go get -u github.com/mrtazz/checkmake
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
echo ""
|
|
|
|
}
|
2019-10-24 19:40:10 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
## Fixers
|
|
|
|
function install_fixers() {
|
|
|
|
echo "### Installing fixers..."
|
|
|
|
# CSS/JS/HTML/JSON/YAML/Markdown/and more!
|
|
|
|
maybe_run npm install -g prettier
|
|
|
|
|
|
|
|
# Python
|
|
|
|
maybe_run pip install --user autopep8 reorder-python-imports
|
2019-12-30 19:06:13 +00:00
|
|
|
maybe_run pip install --user black || echo "WARNING: black is py3 only"
|
2019-10-29 21:55:44 +00:00
|
|
|
maybe_run pip3 install --user black autopep8 reorder-python-imports
|
|
|
|
|
|
|
|
# Rust
|
|
|
|
maybe_run rustup component add rustfmt
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
}
|
|
|
|
|
|
|
|
function main() {
|
|
|
|
install_language_servers
|
|
|
|
install_linters
|
|
|
|
install_fixers
|
2019-10-30 00:33:14 +00:00
|
|
|
|
2019-10-29 21:55:44 +00:00
|
|
|
echo ""
|
|
|
|
echo "DONE"
|
|
|
|
}
|
|
|
|
|
|
|
|
main
|