#!/bin/bash
set -e

BLUE='\E[1;34m'
CYAN='\E[1;36m'
YELLOW='\E[1;33m'
GREEN='\E[1;32m'
RESET='\E[0m'

# Determine the correct binary file for the architecture given
case $TARGETPLATFORM in
	linux/arm64)
		ARCH=arm64
		;;

	linux/arm/v7)
		ARCH=arm
		;;

	*)
		ARCH=amd64
		;;
esac

if [ "$ARCH" = "amd64" ]; then
	echo -e "${BLUE}❯ ${CYAN}Installing golangci-lint ...${RESET}"
	go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

	echo -e "${BLUE}❯ ${CYAN}Installing richgo ...${RESET}"
	go install github.com/kyoh86/richgo@latest

	echo -e "${BLUE}❯ ${CYAN}Installing govulncheck ...${RESET}"
	go install golang.org/x/vuln/cmd/govulncheck@latest

	echo -e "${BLUE}❯ ${CYAN}Installing tparse ...${RESET}"
	go install github.com/mfridman/tparse@latest

	echo -e "${BLUE}❯ ${CYAN}Installing go-junit-report ...${RESET}"
	go install github.com/jstemmer/go-junit-report@latest

	echo -e "${BLUE}❯ ${CYAN}Installing go-test-coverage ...${RESET}"
	go install github.com/vladopajic/go-test-coverage/v2@latest

	echo -e "${BLUE}❯ ${CYAN}Installing go-mod-upgrade ...${RESET}"
	go install github.com/oligot/go-mod-upgrade@latest
fi

rm -rf "$(go env GOPATH)/.cache/go-build"
echo -e "${BLUE}❯ ${GREEN}Tools install completed${RESET}"
