From 3d2ac7b931a9e459c0f5105d0bac757cb86f3a70 Mon Sep 17 00:00:00 2001 From: viewit Date: Sat, 25 Apr 2026 14:06:54 +0200 Subject: [PATCH] release: v0.9.1-beta10 --- VERSION | 2 +- start.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100755 start.sh diff --git a/VERSION b/VERSION index 71c80c1..2b8996b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.1-beta9 +0.9.1-beta10 diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..ea64fa9 --- /dev/null +++ b/start.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +# start.sh – KX-Bridge starten (baut Docker-Image automatisch wenn nötig) + +set -euo pipefail + +cd "$(dirname "$0")" + +# .env anlegen falls nicht vorhanden +if [[ ! -f .env ]]; then + if [[ -f .env.example ]]; then + cp .env.example .env + echo "[start] .env aus .env.example erstellt" + else + touch .env + fi +fi + +# Docker verfügbar? +if ! docker info > /dev/null 2>&1; then + echo "[start] Docker nicht gefunden – bitte Docker installieren." + exit 1 +fi + +# Prüfen ob Build nötig ist +NEEDS_BUILD=0 +if ! docker image inspect kx-bridge:latest > /dev/null 2>&1; then + echo "[start] Image nicht vorhanden – baue kx-bridge:latest ..." + NEEDS_BUILD=1 +else + # Image-Erstellungszeit in Unix-Sekunden + IMAGE_TS=$(docker inspect --format='{{.Created}}' kx-bridge:latest \ + | python3 -c "import sys,datetime; s=sys.stdin.read().strip(); \ + s=s[:26].rstrip('Z').replace('T',' '); \ + print(int(datetime.datetime.fromisoformat(s).replace(tzinfo=datetime.timezone.utc).timestamp()))" 2>/dev/null || echo 0) + + for f in Dockerfile \ + 05_scripts/kobrax_moonraker_bridge.py \ + 05_scripts/kobrax_client.py \ + 05_scripts/env_loader.py \ + 05_scripts/requirements.txt \ + 05_scripts/anycubic_slicer.crt \ + 05_scripts/anycubic_slicer.key; do + if [[ -f "$f" ]]; then + FILE_TS=$(python3 -c "import os; print(int(os.path.getmtime('$f')))" 2>/dev/null || echo 0) + if [[ $FILE_TS -gt $IMAGE_TS ]]; then + echo "[start] '$f' ist neuer als das Image – baue neu ..." + NEEDS_BUILD=1 + break + fi + fi + done +fi + +if [[ $NEEDS_BUILD -eq 1 ]]; then + docker build -t kx-bridge:latest . +fi + +# Container starten +echo "[start] Starte KX-Bridge ..." +docker-compose down 2>/dev/null || true +docker-compose up -d + +echo "" +echo " ✓ KX-Bridge läuft" +echo " Web-UI : http://$(hostname -I | awk '{print $1}'):7125" +echo " Logs : docker-compose logs -f" +echo " Stop : docker-compose down"