diff --git a/golang/install.ps1 b/golang/install.ps1 index 4b3b18b..1a2ebd7 100644 --- a/golang/install.ps1 +++ b/golang/install.ps1 @@ -17,6 +17,15 @@ 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")) { @@ -59,21 +68,21 @@ IF (!(Test-Path -Path go\bin)) { New-Item -Path go\bin -ItemType Directory -Forc # Special to go: re-run all go tooling builds echo "Building go language tools..." echo gopls -& "$pkg_dst_cmd" get golang.org/x/tools/gopls +& "$pkg_dst_cmd" install golang.org/x/tools/gopls echo golint -& "$pkg_dst_cmd" get golang.org/x/lint/golint +& "$pkg_dst_cmd" install golang.org/x/lint/golint echo errcheck -& "$pkg_dst_cmd" get github.com/kisielk/errcheck +& "$pkg_dst_cmd" install github.com/kisielk/errcheck echo gotags -& "$pkg_dst_cmd" get github.com/jstemmer/gotags +& "$pkg_dst_cmd" install github.com/jstemmer/gotags echo goimports -& "$pkg_dst_cmd" get golang.org/x/tools/cmd/goimports +& "$pkg_dst_cmd" install golang.org/x/tools/cmd/goimports echo gorename -& "$pkg_dst_cmd" get golang.org/x/tools/cmd/gorename +& "$pkg_dst_cmd" install golang.org/x/tools/cmd/gorename echo gotype -& "$pkg_dst_cmd" get golang.org/x/tools/cmd/gotype +& "$pkg_dst_cmd" install golang.org/x/tools/cmd/gotype echo stringer -& "$pkg_dst_cmd" get golang.org/x/tools/cmd/stringer +& "$pkg_dst_cmd" install golang.org/x/tools/cmd/stringer # Add to path & "$Env:USERPROFILE\.local\bin\pathman.exe" add ~/.local/opt/go/bin diff --git a/golang/install.sh b/golang/install.sh index 2df6a91..1c69124 100644 --- a/golang/install.sh +++ b/golang/install.sh @@ -15,6 +15,19 @@ 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 + function pkg_get_current_version() { # 'go version' has output in this format: # go version go1.14.2 darwin/amd64 @@ -56,56 +69,12 @@ function pkg_post_install() { webi_path_add "$pkg_dst_bin" webi_path_add "$GOBIN/bin" - # Install x go - echo "Building go language tools..." - export GO111MODULE=on - - # See https://pkg.go.dev/mod/golang.org/x/tools?tab=packages - - my_install="install" - # note: we intend a lexical comparison, so this is correct - #shellcheck disable=SC2072 - if [[ ${WEBI_VERSION} < "1.16" ]]; then - my_install="get" + if [ -z "${WEBI__GO_ESSENTIALS:-}" ]; then + # TODO nix for go1.21+ + WEBI__GO_INSTALL='true' + export WEBI__GO_INSTALL + webi "go-essentials@${WEBI_TAG}" fi - - echo "" - echo godoc - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/godoc@latest > /dev/null #2>/dev/null - - echo "" - echo gopls - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/gopls@latest > /dev/null #2>/dev/null - - echo "" - echo guru - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/guru@latest > /dev/null #2>/dev/null - - echo "" - echo golint - "$pkg_dst_cmd" "${my_install}" golang.org/x/lint/golint@latest > /dev/null #2>/dev/null - - echo "" - echo goimports - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/goimports@latest > /dev/null #2>/dev/null - - echo "" - echo gomvpkg - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gomvpkg@latest > /dev/null #2>/dev/null - - echo "" - echo gorename - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gorename@latest > /dev/null #2>/dev/null - - echo "" - echo gotype - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gotype@latest > /dev/null #2>/dev/null - - echo "" - echo stringer - "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/stringer@latest > /dev/null #2>/dev/null - - echo "" } function pkg_done_message() {