mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-19 12:03:02 -04:00
dev-util/docker-language-server: new package, add 0.20.1
Signed-off-by: ingenarel (NeoJesus) <ingenarel_neojesus@disroot.org>
This commit is contained in:
2
dev-util/docker-language-server/Manifest
Normal file
2
dev-util/docker-language-server/Manifest
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
DIST docker-language-server-0.20.1-deps.tar.xz 170888880 BLAKE2B b6083d3452a67a8774405db2afdf52ae672f338451dd9896e9a395c837cce565f7b41baf375490b3f0c69d6e4b27f72170dbc9225c4522dafc182f2267102f61 SHA512 163b1e04ada6e2c1219430a9fe65397c74d954e41062b487a821c1a60134b50df4a29064073538db88cdb2334e2f8aff42e6c32a38a9ee2d4db48c7fa525db66
|
||||||
|
DIST docker-language-server-0.20.1.tar.gz 261348 BLAKE2B fef37c694fb4b0288a17a28d81ce6c01384e42433e753589d7021808ed4ec170ff65f8a3df9cbfea0bce1c2b052ffe3274fc0c21423637a21d9215b3c77451ec SHA512 0fb5edb069e0fa3a2ed0e5d0879e8385b93f31509de16b3c1d4824251ccf9b81ee97220e2abe89aaee481b1b47525fb36a2c48e854c481a79ace408b391c394d
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
# Copyright 2026 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit go-module shell-completion optfeature
|
||||||
|
|
||||||
|
DESCRIPTION="Language server for Dockerfiles, Compose files, and Bake files"
|
||||||
|
HOMEPAGE="https://github.com/docker/docker-language-server"
|
||||||
|
|
||||||
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/docker/docker-language-server.git"
|
||||||
|
else
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
SRC_URI="https://github.com/docker/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://github.com/ingenarel/guru-depfiles/releases/download/${P}-deps.tar.xz/${P}-go-mod-deps.tar.xz ->
|
||||||
|
${P}-deps.tar.xz
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
#gentoo-go-license docker-language-server-0.20.1.ebuild
|
||||||
|
LICENSE+=" Apache-2.0 BSD-2 BSD ISC MIT MPL-2.0 Unicode-DFS-2016 "
|
||||||
|
# dependency licenses
|
||||||
|
# if it says unknown license, and it's for in_toto, it's Apache-2.0
|
||||||
|
SLOT="0"
|
||||||
|
RESTRICT="test"
|
||||||
|
BDEPEND=">=dev-lang/go-1.25.0"
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/telemetry-0.20.1.patch"
|
||||||
|
)
|
||||||
|
# the telemetry patch removes some unnessary bloat where the lsp would try to publish the telemetry (but will fail
|
||||||
|
# anyway because we don't have the api keys), otherwise i would actually use the telemetry use flag for this
|
||||||
|
|
||||||
|
src_unpack(){
|
||||||
|
if [[ "${PV}" == 9999 ]];then
|
||||||
|
git-r3_src_unpack
|
||||||
|
go-module_live_vendor
|
||||||
|
else
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile(){
|
||||||
|
local VERSION
|
||||||
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
|
VERSION="$(git show -s --format=%cs)-$(git rev-parse --short HEAD)"
|
||||||
|
else
|
||||||
|
VERSION="${PV}"
|
||||||
|
fi
|
||||||
|
CGO_ENABLED=0 ego build \
|
||||||
|
-ldflags="-s -w -X 'github.com/docker/docker-language-server/internal/pkg/cli/metadata.Version=${VERSION}'" \
|
||||||
|
-o ./bin/"${PN}" ./cmd/"${PN}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install(){
|
||||||
|
dobin ./bin/"${PN}"
|
||||||
|
./bin/"${PN}" completion bash > "${PN}" || die "generating bash completion failed"
|
||||||
|
dobashcomp "${PN}"
|
||||||
|
./bin/"${PN}" completion zsh > "_${PN}" || die "generating zsh completion failed"
|
||||||
|
dozshcomp "_${PN}"
|
||||||
|
./bin/"${PN}" completion fish > "${PN}.fish" || die "generating fish completion failed"
|
||||||
|
dofishcomp "${PN}.fish"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst(){
|
||||||
|
# at the time of writing this, it doesn't say what features, just some optional features
|
||||||
|
# https://github.com/docker/docker-language-server/blob/5187ff578db630f5df5b5922a10d8415a5bb7d32/README.md?plain=1#L7
|
||||||
|
optfeature "some optional features" app-containers/docker-buildx
|
||||||
|
}
|
||||||
85
dev-util/docker-language-server/files/telemetry-0.20.1.patch
Normal file
85
dev-util/docker-language-server/files/telemetry-0.20.1.patch
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
diff --git a/internal/pkg/cli/start.go b/internal/pkg/cli/start.go
|
||||||
|
index 47ea4c5..55722d5 100644
|
||||||
|
--- a/internal/pkg/cli/start.go
|
||||||
|
+++ b/internal/pkg/cli/start.go
|
||||||
|
@@ -84,13 +84,11 @@ For socket mode, pass the --address option.
|
||||||
|
func runStdioServer(_ context.Context) error {
|
||||||
|
docManager := document.NewDocumentManager()
|
||||||
|
s := server.NewServer(docManager)
|
||||||
|
- s.StartBackgrondProcesses(context.Background())
|
||||||
|
return s.RunStdio()
|
||||||
|
}
|
||||||
|
|
||||||
|
func runSocketServer(_ context.Context, addr string) error {
|
||||||
|
docManager := document.NewDocumentManager()
|
||||||
|
s := server.NewServer(docManager)
|
||||||
|
- s.StartBackgrondProcesses(context.Background())
|
||||||
|
return s.RunTCP(addr)
|
||||||
|
}
|
||||||
|
diff --git a/internal/pkg/server/server.go b/internal/pkg/server/server.go
|
||||||
|
index 220bff6..139a442 100644
|
||||||
|
--- a/internal/pkg/server/server.go
|
||||||
|
+++ b/internal/pkg/server/server.go
|
||||||
|
@@ -159,7 +159,6 @@ func (s *Server) Initialized(context *glsp.Context, params *protocol.Initialized
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) shutdown(ctx *glsp.Context) error {
|
||||||
|
- _, _ = s.telemetry.Publish(context.Background())
|
||||||
|
protocol.SetTraceValue(protocol.TraceValueOff)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@@ -182,26 +181,6 @@ func (s *Server) recomputeDiagnostics() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-func (s *Server) StartBackgrondProcesses(ctx context.Context) {
|
||||||
|
- s.publishTelemetry(ctx)
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (s *Server) publishTelemetry(ctx context.Context) {
|
||||||
|
- go func() {
|
||||||
|
- defer s.handlePanic("publishTelemetry")
|
||||||
|
-
|
||||||
|
- for {
|
||||||
|
- select {
|
||||||
|
- case <-ctx.Done():
|
||||||
|
- return
|
||||||
|
- default:
|
||||||
|
- time.Sleep(time.Second * 60)
|
||||||
|
- _, _ = s.telemetry.Publish(ctx)
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }()
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
func (s *Server) handleRecovered(method string, recovered interface{}) bool {
|
||||||
|
if recovered != nil {
|
||||||
|
debug.PrintStack()
|
||||||
|
diff --git a/internal/telemetry/client.go b/internal/telemetry/client.go
|
||||||
|
index 8d942f6..42ba887 100644
|
||||||
|
--- a/internal/telemetry/client.go
|
||||||
|
+++ b/internal/telemetry/client.go
|
||||||
|
@@ -27,19 +27,19 @@ type TelemetryClientImpl struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewClient() TelemetryClient {
|
||||||
|
- return &TelemetryClientImpl{telemetry: configuration.TelemetrySettingAll}
|
||||||
|
+ return &TelemetryClientImpl{telemetry: configuration.TelemetrySettingOff}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TelemetryClientImpl) UpdateTelemetrySetting(value string) {
|
||||||
|
switch value {
|
||||||
|
case "all":
|
||||||
|
- c.telemetry = configuration.TelemetrySettingAll
|
||||||
|
+ c.telemetry = configuration.TelemetrySettingOff
|
||||||
|
case "error":
|
||||||
|
- c.telemetry = configuration.TelemetrySettingError
|
||||||
|
+ c.telemetry = configuration.TelemetrySettingOff
|
||||||
|
case "off":
|
||||||
|
c.telemetry = configuration.TelemetrySettingOff
|
||||||
|
default:
|
||||||
|
- c.telemetry = configuration.TelemetrySettingAll
|
||||||
|
+ c.telemetry = configuration.TelemetrySettingOff
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
15
dev-util/docker-language-server/metadata.xml
Normal file
15
dev-util/docker-language-server/metadata.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>ingenarel_neojesus@disroot.org</email>
|
||||||
|
<name>ingenarel</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">docker/docker-language-server</remote-id>
|
||||||
|
</upstream>
|
||||||
|
<longdescription lang="en">
|
||||||
|
The Docker Language Server is a language server for providing language features for file types in the Docker
|
||||||
|
ecosystem (Dockerfiles, Compose files, and Bake files).
|
||||||
|
</longdescription>
|
||||||
|
</pkgmetadata>
|
||||||
Reference in New Issue
Block a user