| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/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 ==="
|