#!/bin/bash # Setup and update Kiwy-Signage player code for SSH-based deployment # This script is called by docker-entrypoint.sh on container startup set -e PLAYER_CODE_DIR="/app/data/player" REPO_URL="https://gitea.moto-adv.com/ske087/Kiwy-Signage.git" REPO_BRANCH="master" echo "==========================================" echo "Setting up Player Code for SSH Deployment" echo "==========================================" echo "" # Create player data directory if it doesn't exist if [ ! -d "$PLAYER_CODE_DIR" ]; then echo "📁 Creating player code directory: $PLAYER_CODE_DIR" mkdir -p "$PLAYER_CODE_DIR" fi # Check if git repository exists if [ -d "$PLAYER_CODE_DIR/.git" ]; then echo "🔄 Repository exists - updating from remote..." cd "$PLAYER_CODE_DIR" # Fetch latest changes if git fetch origin "$REPO_BRANCH" 2>/dev/null; then # Try to update if git reset --hard "origin/$REPO_BRANCH" 2>/dev/null; then echo "✅ Player code updated successfully" COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") echo " Current version: $COMMIT" else echo "⚠️ Could not reset to remote - using existing code" fi else echo "⚠️ Could not fetch from remote - using existing code" fi else echo "📥 Cloning Kiwy-Signage repository..." # Check if directory is not empty if [ "$(ls -A "$PLAYER_CODE_DIR" 2>/dev/null)" ]; then echo "⚠️ Directory not empty but no git repo - cleaning..." rm -rf "$PLAYER_CODE_DIR"/* rm -rf "$PLAYER_CODE_DIR"/.* fi # Clone the repository if git clone --branch "$REPO_BRANCH" "$REPO_URL" "$PLAYER_CODE_DIR" 2>/dev/null; then echo "✅ Repository cloned successfully" COMMIT=$(git -C "$PLAYER_CODE_DIR" rev-parse --short HEAD 2>/dev/null || echo "unknown") echo " Current version: $COMMIT" else echo "❌ Failed to clone repository" echo " Repository: $REPO_URL" echo " This may be due to:" echo " • Network connectivity issues" echo " • Repository access restrictions" echo " • Invalid repository URL" echo "" echo "⚠️ DigiServer will continue without pre-staged player code" echo " SSH deployment will attempt to clone on-demand" exit 0 fi fi echo "" echo "📊 Player Code Directory:" du -sh "$PLAYER_CODE_DIR" 2>/dev/null || echo " (empty or not ready)" echo "" # Create a metadata file METADATA_FILE="$PLAYER_CODE_DIR/.deployment-info" cat > "$METADATA_FILE" << EOF # Kiwy-Signage Player Code - Deployment Metadata # Auto-generated by setup-player-code.sh Repository: $REPO_URL Branch: $REPO_BRANCH Updated: $(date -u +"%Y-%m-%dT%H:%M:%SZ") Version: $(git -C "$PLAYER_CODE_DIR" rev-parse --short HEAD 2>/dev/null || echo "unknown") Hostname: $(hostname) ## Usage This directory contains the Kiwy-Signage player code that is: 1. Pre-staged in the DigiServer container 2. Used as a base for SSH-based remote deployment 3. Updated on each container restart (if network available) For SSH deployment, this code is copied to remote hosts at: /opt/kiwy-signage ## Manual Update To manually update inside container: cd /app/data/player git pull origin $REPO_BRANCH EOF echo "✅ Player code setup complete" echo " Location: $PLAYER_CODE_DIR" echo " Metadata: $METADATA_FILE" echo ""