#!/usr/bin/env bash # GCBoK.WebStaticBuilder — KMU-Installationsskript # Installiert das Tool nach /opt/GitCover/webstatic und legt einen Symlink # `webstatic` nach /usr/local/bin. Idempotent. set -euo pipefail INSTALL_DIR="${WEBSTATIC_INSTALL_DIR:-/opt/GitCover/webstatic}" BIN_LINK="/usr/local/bin/webstatic" REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "== GCBoK.WebStaticBuilder Installer ==" echo "Installationsziel: $INSTALL_DIR" # 1) .NET 10 pruefen if ! command -v dotnet >/dev/null 2>&1; then echo "FEHLER: .NET 10 (dotnet) ist nicht installiert." >&2 echo "Installiere .NET 10 von https://dotnet.microsoft.com/download" >&2 exit 1 fi DOTNET_VER="$(dotnet --version 2>/dev/null || echo 0)" echo "Gefunden: dotnet $DOTNET_VER" # 2) Projekt bauen (Release) echo "== Baue Release ==" dotnet build "$REPO_DIR/GCBoK.WebStaticBuilder.csproj" -c Release -v minimal # 3) Nach /opt kopieren echo "== Kopiere nach $INSTALL_DIR ==" mkdir -p "$INSTALL_DIR" rm -rf "$INSTALL_DIR/bin" "$INSTALL_DIR/webstatic.example" 2>/dev/null || true cp -r "$REPO_DIR/bin/Release/net10.0/." "$INSTALL_DIR/" cp -r "$REPO_DIR/webstatic.example" "$INSTALL_DIR/webstatic.example" 2>/dev/null || true # Hilfsdateien auf oberster Ebene mitnehmen (LICENSE, README, docs) for f in LICENSE README.md docs plans AGENTS.md MEMORY.md SKILLS.md; do [ -e "$REPO_DIR/$f" ] && cp -r "$REPO_DIR/$f" "$INSTALL_DIR/" 2>/dev/null || true done # 4) Symlink echo "== Verknuepfe $BIN_LINK -> $INSTALL_DIR/webstatic.dll ==" if [ -w "$(dirname "$BIN_LINK")" ]; then ln -sf "$INSTALL_DIR/webstatic.dll" "$BIN_LINK" else echo "Hinweis: $BIN_LINK benoetigt Schreibrechte; erstelle Link via sudo." sudo ln -sf "$INSTALL_DIR/webstatic.dll" "$BIN_LINK" fi echo "" echo "Fertig. Danach verfuegbar ueber: webstatic --help" echo "Beispiel-Seite erzeugen: webstatic init mysite && cd mysite && webstatic build --env work" echo "Umgebungsvariable (optional): WEBSTATIC_BUILDER=$INSTALL_DIR/webstatic.dll"