- Python LSP (pylsp + pylsp_i80 plugin): i80 pypi package completions - Bicep LSP (asyncio TCP proxy → Bicep.LangServer.dll): LRU module injection - Health HTTP endpoint (:2089) for Consul/Nomad checks - Startup catalog fetch from pypi-server.i80.dk + DevOpsMCP (no volume needed) - Multi-stage Dockerfile: downloads Bicep LS at build time, dotnet-runtime-8.0 + python3.12 - Nomad job: static TCP ports 2087/2088, health check on 2089 - Gitea Actions CI: build + push + deploy pipeline - Editor configs: Helix / nvim / LSP4IJ / VS Code
32 lines
885 B
Bash
Executable File
32 lines
885 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Download Bicep Language Server at Docker build time.
|
|
# Uses the official GitHub releases — no VS Code needed.
|
|
set -euo pipefail
|
|
|
|
BICEP_VERSION="${BICEP_VERSION:-latest}"
|
|
DEST="/opt/bicep-langserver"
|
|
ZIP="/tmp/bicep-langserver.zip"
|
|
|
|
mkdir -p "$DEST"
|
|
|
|
if [ "$BICEP_VERSION" = "latest" ]; then
|
|
URL="https://github.com/Azure/bicep/releases/latest/download/bicep-langserver.zip"
|
|
else
|
|
URL="https://github.com/Azure/bicep/releases/download/${BICEP_VERSION}/bicep-langserver.zip"
|
|
fi
|
|
|
|
echo "Downloading Bicep Language Server from: $URL"
|
|
curl -fsSL "$URL" -o "$ZIP"
|
|
unzip -q "$ZIP" -d "$DEST"
|
|
rm "$ZIP"
|
|
|
|
# Verify the DLL is present
|
|
if [ ! -f "$DEST/Bicep.LangServer.dll" ]; then
|
|
echo "ERROR: Bicep.LangServer.dll not found in $DEST" >&2
|
|
ls -la "$DEST" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Bicep Language Server installed at $DEST"
|
|
ls -lh "$DEST/Bicep.LangServer.dll"
|