feat: add LSP wrapper scripts for named containers

Add wrapper scripts for bash, docker, and marksman LSP servers
to ensure containers use explicit names matching image names.
Enables multiple Crush sessions to share LSP server containers
with clean restart capability.

- lsp-bash-wrapper.sh: Wrapper for bash-language-server
- lsp-docker-wrapper.sh: Wrapper for docker-language-server
- lsp-marksman-wrapper.sh: Wrapper for marksman markdown LSP

Each wrapper cleans up existing containers and starts new container
with --name flag to ensure consistent naming.
This commit is contained in:
2026-01-22 17:43:37 -05:00
parent 982f6afd6d
commit a7e5c61e6a
3 changed files with 54 additions and 0 deletions

18
lsp-docker-wrapper.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
# Wrapper script for docker-language-server LSP
# Ensures clean container with proper name
CONTAINER_NAME="kneldevstack-aimiddleware-docker-language-server"
IMAGE_NAME="kneldevstack-aimiddleware-docker-language-server"
# Remove existing container if it exists (in any state)
if docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
docker rm -f "${CONTAINER_NAME}" > /dev/null 2>&1
# Wait for container to be fully removed
while docker ps -a --filter "name=${CONTAINER_NAME}" --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; do
sleep 0.1
done
fi
# Start the LSP server with explicit name
exec docker run -i --rm --name "${CONTAINER_NAME}" "${IMAGE_NAME}" start --stdio "$@"