mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-18 19:43:24 -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