#!/bin/bash # ============================================================ # Deployment script for Hikvision ISUP Client # ============================================================ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" INSTALL_DIR="/usr/local/bin" CONFIG_DIR="/etc/hikvision-isup" BINARY_NAME="${1:-hikvision-isup-client}" echo "=== Deploying $BINARY_NAME ===" # Check if binary exists if [ ! -f "$PROJECT_DIR/$BINARY_NAME" ]; then echo "Binary not found: $PROJECT_DIR/$BINARY_NAME" echo "Running make first..." cd "$PROJECT_DIR" make fi # Create config directory sudo mkdir -p "$CONFIG_DIR" # Install binary sudo install -m 755 "$PROJECT_DIR/$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME" echo "Binary installed to $INSTALL_DIR/$BINARY_NAME" # Copy config if [ -f "$PROJECT_DIR/config.ini" ]; then sudo cp "$PROJECT_DIR/config.ini" "$CONFIG_DIR/config.ini" echo "Config copied to $CONFIG_DIR/config.ini" fi # Create necessary directories sudo mkdir -p /var/log/hikvision-isup sudo mkdir -p /var/lib/hikvision-isup/recordings sudo mkdir -p /var/lib/hikvision-isup/sim_images # Create systemd service file sudo tee "/etc/systemd/system/hikvision-isup-client.service" > /dev/null << 'EOF' [Unit] Description=Hikvision ISUP Client - Platform Registration and Stream Management After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/hikvision-isup ExecStart=/usr/local/bin/hikvision-isup-client -c /etc/hikvision-isup/config.ini -d Restart=on-failure RestartSec=5 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF echo "Systemd service file created" echo "" echo "To enable and start the service:" echo " sudo systemctl daemon-reload" echo " sudo systemctl enable hikvision-isup-client" echo " sudo systemctl start hikvision-isup-client" echo "" echo "To check status:" echo " sudo systemctl status hikvision-isup-client" echo " journalctl -u hikvision-isup-client -f" echo "" echo "=== Deployment complete ==="