myhome/.config/nvim/installer.sh
Marcin Woźniak 98ed56e5da Added installing the terraform and terraform-ls
Signed-off-by: Marcin Woźniak <marcin.wozniak@wundermanthompson.com>
2023-01-03 08:44:12 +01:00

108 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
function timestamp() {
echo "[+] $(date +'%F %T') [INFO] $*"
}
function err() {
echo "[-] $(date +'%F %T') [ERROR] $*" >&2
}
function command_start() {
timestamp "Command $* has been started."
if ! "$*"; then
err "Command $* went wrong."
fi
timestamp "Command $* has been ended."
}
function update_pip() {
python3 -m pip install --upgrade pip --user
}
function install_neovim_module_for_python() {
pip3 install neovim --pre --user --force
}
function install_pyright() {
# Install pyright
sudo npm -g i pyright --force
}
function install_bash-language-server() {
# Install bash-language-server
sudo npm -g i bash-language-server --force
}
function install_yaml-language-server() {
# Install yaml-language-server
sudo npm -g i yaml-language-server --force
}
function install_shfmt() {
# Install shfmt
GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@latest
}
function install_terraform() {
# Install terraform and terraform-ls
GO111MODULE=on go install github.com/hashicorp/terraform@latest
GO111MODULE=on go install github.com/hashicorp/terraform-ls@latest
if [[ "$(uname)" == "Darwin" ]]; then
brew install tflint
else
curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash
fi
}
function install_shellcheck() {
# Install shellcheck
if [[ "$(uname)" == "Darwin" ]]; then
brew install shellcheck
else
curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash
fi
}
function install_gopls() {
# Install gopls
GO111MODULE=on go install golang.org/x/tools/gopls@latest
}
function install_black() {
# Install black
pip3 install black --pre --user --force
}
function install_ansible() {
pip3 install --pre --user ansible ansible-lint ansible-core --force
}
function install_ansible-language-server() {
# Install ansible-language-server
sudo npm -g i @ansible/ansible-language-server --force
sudo npm -g i yaml-language-server --force
}
function install_meraki_ansible() {
ansible-galaxy collection install cisco.meraki --force
pip3 install meraki --user --force
}
function main() {
command_start update_pip
command_start install_pyright
command_start install_bash-language-server
command_start install_yaml-language-server
command_start install_ansible-language-server
command_start install_shfmt
command_start install_shellcheck
command_start install_gopls
command_start install_terraform
command_start install_black
command_start install_ansible
command_start install_meraki_ansible
}
main