From 529cb58573ef2ba40a6c7bfcafaa6c13261dea3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Tue, 11 Apr 2023 10:20:06 +0200 Subject: [PATCH] Moved installer.sh to .local/bin/Update-pkg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Woźniak --- .local/bin/Update-pkg | 195 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100755 .local/bin/Update-pkg diff --git a/.local/bin/Update-pkg b/.local/bin/Update-pkg new file mode 100755 index 0000000..30eb86a --- /dev/null +++ b/.local/bin/Update-pkg @@ -0,0 +1,195 @@ +#!/bin/bash +# shellcheck disable=2045,2086 + +ZSHFOLDER=$HOME/.config/zsh +CONFIG="$HOME/.config" + +# Colours +RED='\033[0;31m' +GREEN='\033[0;0;32m' +NC='\033[0m' + +function timestamp() { + echo -e "${GREEN}[+]${NC} $(date +'%F %T') [INFO] $*" +} + +function err() { + echo -e "${RED}[-] $(date +'%F %T') [ERROR] $*${NC}" >&2 +} + +function command_start() { + timestamp "Command $* has been started." + if ! "$*"; then + err "Command $* went wrong." + exit + fi + timestamp "Command $* has been ended." +} + +function update_pip() { + # Update the pip + python3 -m pip install --upgrade pip --user +} + +function install_neovim_module_for_python() { + # Python module in neovim + pip3 install neovim --pre --user --force --quiet +} + +function install_pyright() { + # Install pyright + sudo npm -s -g i pyright --force +} + +function install_bash-language-server() { + # Install bash-language-server + sudo npm -s -g i bash-language-server --force +} + +function install_yaml-language-server() { + # Install yaml-language-server + sudo npm -s -g i yaml-language-server --force +} + +function install_shfmt() { + # Install shfmt + GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@latest +} + +function install_lazy() { + # Install shfmt + GO111MODULE=on go install github.com/jesseduffield/lazygit@latest + GO111MODULE=on go install github.com/jesseduffield/lazydocker@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 -q + brew install tfenv -q + else + curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash + fi +} + +function install_terragrunt() { + # Install terragrunt + if [[ "$(uname)" == "Darwin" ]]; then + brew install terragrunt -q + else + wget https://github.com/gruntwork-io/terragrunt/releases/latest/download/terragrunt_linux_amd64 -O $HOME/.local/bin/terragrunt + chmod +x $HOME/.local/bin/terragrunt + fi +} + +function install_shellcheck() { + # Install shellcheck + if [[ "$(uname)" == "Darwin" ]]; then + brew install shellcheck -q + 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 --quiet +} + +function install_ansible() { + # Install Ansible + pip3 install ansible ansible-lint ansible-core --pre --user --force --quiet +} + +function install_ansible-language-server() { + # Install ansible-language-server + sudo npm -s -g i @ansible/ansible-language-server --force + sudo npm -s -g i yaml-language-server --force +} + +function install_meraki_ansible() { + # Install python, ansible module for meraki + ansible-galaxy collection install cisco.meraki --force + pip3 install meraki --user --force --quiet +} + +function install_azure_cli() { + # Install azure_cli + pip3 install azure-cli --pre --user --force --quiet +} + +function install_awscli() { + # Install awscli + pip3 install awscli --pre --user --force --quiet +} + +function update() { + if [ -d $CONFIG/fzf ]; then + FOLDER="$CONFIG/fzf" + cd $FOLDER || err "Folder $FOLDER has been NOT found" + git pull -q && timestamp "Pulling the $FOLDER configuration" + else + FOLDER="$CONFIG/fzf" + git clone https://github.com/junegunn/fzf.git $FOLDER && timestamp "Cloning the FZF" + git pull -q && timestamp "Pulling the $FOLDER configuration" + fi + + if [ ! -d $ZSHFOLDER/aws ]; then + curl -s https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/aws/aws.plugin.zsh \ + -o "$ZSHFOLDER"/aws/aws.plugin.zsh && + timestamp "Downloaded the newest version of aws plugin for zsh" + + curl -s https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion \ + -o "$ZSHFOLDER"/azure-cli/az.completion && + timestamp "Downloaded the newest version of az plugin for zsh" + + mkdir -p "$ZSHFOLDER/azure-cli" "$ZSHFOLDER/aws" + cd $ZSHFOLDER || err "Folder $ZSHFOLDER has been NOT found" + git clone https://github.com/popstas/zsh-command-time.git && + timestamp "Cloning the zsh-command-time" + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git && + timestamp "Cloning the zsh-syntax-highlighting" + git clone https://github.com/zsh-users/zsh-autosuggestions.git && + timestamp "Cloning the zsh-autosuggestions" + fi + + for i in $(ls $ZSHFOLDER); do + FOLDER="$ZSHFOLDER/$i" + if [ -d "$FOLDER/.git" ]; then + cd "$FOLDER" || err "Folder $FOLDER has been NOT found" + git pull -q && timestamp "Pulling the $FOLDER configuration" + fi + done + + curl -s https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/aws/aws.plugin.zsh -o "$ZSHFOLDER"/aws/aws.plugin.zsh && timestamp "Downloaded the newest version of aws plugin for zsh" + curl -s https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion -o "$ZSHFOLDER"/azure-cli/az.completion && timestamp "Downloaded the newest version of az plugin for zsh" + +} + +function main() { + command_start update_pip + command_start install_pyright + command_start install_lazy + 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_terragrunt + command_start install_azure_cli + command_start install_black + command_start install_ansible + command_start install_meraki_ansible + command_start update +} + +main