chore: git cache cleanup
This commit is contained in:
89
scripts/rebuild-go-tools.sh
Executable file
89
scripts/rebuild-go-tools.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env bash
|
||||
# Rebuild Go development tools with the current Go version
|
||||
# This ensures tools like golangci-lint are compiled with the same Go version as the project
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "🔧 Rebuilding Go development tools..."
|
||||
echo "Current Go version: $(go version)"
|
||||
echo ""
|
||||
|
||||
# Core development tools (ordered by priority)
|
||||
declare -A TOOLS=(
|
||||
["golangci-lint"]="github.com/golangci/golangci-lint/cmd/golangci-lint@latest"
|
||||
["gopls"]="golang.org/x/tools/gopls@latest"
|
||||
["govulncheck"]="golang.org/x/vuln/cmd/govulncheck@latest"
|
||||
["dlv"]="github.com/go-delve/delve/cmd/dlv@latest"
|
||||
)
|
||||
|
||||
FAILED_TOOLS=()
|
||||
SUCCESSFUL_TOOLS=()
|
||||
|
||||
for tool_name in "${!TOOLS[@]}"; do
|
||||
tool_path="${TOOLS[$tool_name]}"
|
||||
echo "📦 Installing $tool_name..."
|
||||
if go install "$tool_path" 2>&1; then
|
||||
SUCCESSFUL_TOOLS+=("$tool_name")
|
||||
echo "✅ $tool_name installed successfully"
|
||||
else
|
||||
FAILED_TOOLS+=("$tool_name")
|
||||
echo "❌ Failed to install $tool_name"
|
||||
fi
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "✅ Tool rebuild complete"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "📊 Installed versions:"
|
||||
echo ""
|
||||
|
||||
# Display versions for each tool
|
||||
if command -v golangci-lint >/dev/null 2>&1; then
|
||||
echo "golangci-lint:"
|
||||
golangci-lint version 2>&1 | grep -E 'version|built with' | sed 's/^/ /'
|
||||
else
|
||||
echo " golangci-lint: not found in PATH"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
if command -v gopls >/dev/null 2>&1; then
|
||||
echo "gopls:"
|
||||
gopls version 2>&1 | head -1 | sed 's/^/ /'
|
||||
else
|
||||
echo " gopls: not found in PATH"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
if command -v govulncheck >/dev/null 2>&1; then
|
||||
echo "govulncheck:"
|
||||
govulncheck -version 2>&1 | sed 's/^/ /'
|
||||
else
|
||||
echo " govulncheck: not found in PATH"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
if command -v dlv >/dev/null 2>&1; then
|
||||
echo "dlv:"
|
||||
dlv version 2>&1 | head -1 | sed 's/^/ /'
|
||||
else
|
||||
echo " dlv: not found in PATH"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Summary
|
||||
if [ ${#FAILED_TOOLS[@]} -eq 0 ]; then
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "✅ All tools rebuilt successfully!"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
exit 0
|
||||
else
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "⚠️ Some tools failed to install:"
|
||||
for tool in "${FAILED_TOOLS[@]}"; do
|
||||
echo " - $tool"
|
||||
done
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user