ref!(go): separate go from go-essentials for 1.21

This commit is contained in:
AJ ONeal
2023-08-09 22:18:48 +00:00
parent 5a92412348
commit 1d87306129
4 changed files with 70 additions and 59 deletions

View File

@@ -1,5 +1,66 @@
#!/bin/pwsh
#!/usr/bin/env pwsh
echo "'go@$Env:WEBI_TAG' is an alias for 'golang@$Env:WEBI_VERSION'"
IF ($Env:WEBI_HOST -eq $null -or $Env:WEBI_HOST -eq "") { $Env:WEBI_HOST = "https://webinstall.dev" }
curl.exe -fsSL "$Env:WEBI_HOST/golang@$Env:WEBI_VERSION" | powershell
if (!(Get-Command "go.exe" -ErrorAction SilentlyContinue))
{
& "$Env:USERPROFILE\.local\bin\webi-pwsh.ps1" go
# because we need git.exe to be available to golang immediately
$Env:PATH = "$Env:USERPROFILE\go\bin;$Env:USERPROFILE\.local\opt\go\bin;$Env:PATH"
}
# Special to go: re-run all go tooling builds
echo "Building go language tools..."
echo ""
echo godoc
& go install golang.org/x/tools/cmd/godoc@latest
echo ""
echo gopls
& go install golang.org/x/tools/gopls@latest
echo ""
echo guru
& go install golang.org/x/tools/guru@latest
echo ""
echo golint
& go install golang.org/x/lint/golint@latest
#echo ""
#echo errcheck
#& go install github.com/kisielk/errcheck
#echo ""
#echo gotags
#& go install github.com/jstemmer/gotags
echo ""
echo goimports
& go install golang.org/x/tools/cmd/goimports@latest
echo ""
echo gomvpkg
& go install golang.org/x/tools/cmd/gomvpkg@latest
echo ""
echo gorename
& go install golang.org/x/tools/cmd/gorename
echo ""
echo gotype
& go install golang.org/x/tools/cmd/gotype
echo ""
echo stringer
& go install golang.org/x/tools/cmd/stringer
echo ""
# literal %USERPROFILE% on purpose
echo 'Installed go "x" tools to GOBIN=%USERPROFILE%/go/bin'
echo ""
echo "Suggestion: Also check out these great productivity multipliers:"
echo ""
echo " - vim-essentials (sensible defaults for vim)"
echo " - vim-go (golang linting, etc)"
echo ""

View File

@@ -3,10 +3,8 @@ set -e
set -u
__run_go_essentials() {
WEBI__GO_ESSENTIALS='true'
export WEBI__GO_ESSENTIALS
if [ -z "${WEBI__GO_INSTALL-}" ]; then
"$HOME/.local/bin/webi" "golang@${WEBI_TAG}"
if ! command -v go 2> /dev/null; then
"$HOME/.local/bin/webi" "go@${WEBI_TAG}"
fi
export PATH="$HOME/.local/opt/go/bin:$PATH"
@@ -75,6 +73,9 @@ __run_go_essentials() {
go "${my_install}" golang.org/x/tools/cmd/stringer@latest > /dev/null #2>/dev/null
echo ""
# literal $HOME on purpose
# shellcheck disable=SC2016
echo 'Installed go "x" tools to GOBIN=$HOME/go/bin'
printf '\n'
printf 'Suggestion: Also check out these great productivity multipliers:\n'

View File

@@ -17,15 +17,6 @@ if (!(Get-Command "git.exe" -ErrorAction SilentlyContinue))
$Env:PATH = "$Env:USERPROFILE\.local\opt\git\cmd;$Env:PATH"
}
Write-Host '' -ForegroundColor red -BackgroundColor white
Write-Host '*********************' -ForegroundColor red -BackgroundColor white
Write-Host '* BREAKING CHANGE *' -ForegroundColor red -BackgroundColor white
Write-Host '*********************' -ForegroundColor red -BackgroundColor white
Write-Host '' -ForegroundColor red -BackgroundColor white
Write-Host ' ''webi golang'' will NOT install go tooling starting with go1.21+' -ForegroundColor red -BackgroundColor white
Write-Host ' use ''webi go-essentials'' to preserve the previous behavior' -ForegroundColor red -BackgroundColor white
Write-Host '' -ForegroundColor red -BackgroundColor white
# Fetch archive
IF (!(Test-Path -Path "$pkg_download"))
{
@@ -65,25 +56,6 @@ Remove-Item -Path "$pkg_dst" -Recurse -ErrorAction Ignore
Copy-Item -Path "$pkg_src" -Destination "$pkg_dst" -Recurse
IF (!(Test-Path -Path go\bin)) { New-Item -Path go\bin -ItemType Directory -Force | out-null }
# Special to go: re-run all go tooling builds
echo "Building go language tools..."
echo gopls
& "$pkg_dst_cmd" install golang.org/x/tools/gopls
echo golint
& "$pkg_dst_cmd" install golang.org/x/lint/golint
echo errcheck
& "$pkg_dst_cmd" install github.com/kisielk/errcheck
echo gotags
& "$pkg_dst_cmd" install github.com/jstemmer/gotags
echo goimports
& "$pkg_dst_cmd" install golang.org/x/tools/cmd/goimports
echo gorename
& "$pkg_dst_cmd" install golang.org/x/tools/cmd/gorename
echo gotype
& "$pkg_dst_cmd" install golang.org/x/tools/cmd/gotype
echo stringer
& "$pkg_dst_cmd" install golang.org/x/tools/cmd/stringer
# Add to path
webi_path_add ~/.local/opt/go/bin

View File

@@ -14,19 +14,6 @@ pkg_cmd_name="go"
#
# Their defaults are defined in _webi/template.sh at https://github.com/webinstall/packages
if [ -z "${WEBI__GO_ESSENTIALS-}" ]; then
# TODO nix for go1.21+
echo >&2 ""
printf >&2 '\e[31m%s:\e[0m\n' '#####################'
printf >&2 '\e[31m%s:\e[0m\n' '# BREAKING CHANGE #'
printf >&2 '\e[31m%s:\e[0m\n' '#####################'
echo >&2 ""
printf >&2 "\e[31m 'webi golang' will NOT install go tooling starting with go1.21+\e[0m\n"
printf >&2 "\e[31m use 'webi go-essentials' to preserve the previous behavior\e[0m\n"
echo >&2 ""
sleep 4
fi
pkg_get_current_version() {
# 'go version' has output in this format:
# go version go1.14.2 darwin/amd64
@@ -67,18 +54,8 @@ pkg_post_install() {
# "$HOME/.local/opt/go"
webi_path_add "$pkg_dst_bin"
webi_path_add "$GOBIN/bin"
if [ -z "${WEBI__GO_ESSENTIALS-}" ]; then
# TODO nix for go1.21+
WEBI__GO_INSTALL='true'
export WEBI__GO_INSTALL
"$HOME/.local/bin/webi" "go-essentials@${WEBI_TAG}"
fi
}
pkg_done_message() {
echo "Installed 'go v$WEBI_VERSION' to ~/.local/opt/go"
# note: literal $HOME on purpose
#shellcheck disable=SC2016
echo 'Installed go "x" tools to GOBIN=$HOME/go/bin'
}