summaryrefslogtreecommitdiff
path: root/dev-go/go-tools/go-tools-0.20.0.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-go/go-tools/go-tools-0.20.0.ebuild')
-rw-r--r--dev-go/go-tools/go-tools-0.20.0.ebuild52
1 files changed, 52 insertions, 0 deletions
diff --git a/dev-go/go-tools/go-tools-0.20.0.ebuild b/dev-go/go-tools/go-tools-0.20.0.ebuild
new file mode 100644
index 000000000000..fe369f14fa0a
--- /dev/null
+++ b/dev-go/go-tools/go-tools-0.20.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module
+
+DESCRIPTION="Tools that support the Go programming language (godoc, etc.)"
+HOMEPAGE="https://godoc.org/golang.org/x/tools"
+SRC_URI="https://github.com/golang/tools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
+S=${WORKDIR}/${P#go-}
+
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+# Many test failures.
+RESTRICT="test"
+
+GO_TOOLS_BINS=(
+ authtest benchcmp bisect bundle callgraph compilebench cookieauth deadcode
+ defers digraph eg fieldalignment file2fuzz findcall fiximports fuzz-driver
+ fuzz-runner gitauth go-contrib-init godex godoc goimports gomvpkg gonew
+ gopackages gorename gostacks gotype goyacc html2article httpmux ifaceassert
+ lostcancel netrcauth nilness nodecount play present present2md shadow
+ splitdwarf ssadump stress stringer stringintconv toolstash unmarshal
+ unusedresult
+)
+
+src_compile() {
+ local bin packages
+ readarray -t packages < <(ego list ./...)
+ GOBIN="${S}/bin" nonfatal ego install -work "${packages[@]}" || true
+ for bin in "${GO_TOOLS_BINS[@]}"; do
+ [[ -x ${S}/bin/${bin} ]] || \
+ die "File not found, check build log: ${S}/bin/${bin}"
+ done
+}
+
+src_test() {
+ ego test -work ./...
+}
+
+src_install() {
+ # bug 558818: install binaries in $GOROOT/bin to avoid file collisions
+ local goroot=$(go env GOROOT)
+ goroot=${goroot#${EPREFIX}}
+ exeinto "${goroot}/bin"
+ doexe bin/*
+ dodir /usr/bin
+ ln "${ED}/${goroot}/bin/godoc" "${ED}/usr/bin/godoc" || die
+}