Files
RedisClipSync/linux/build-slave-release.sh

66 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
DIST_DIR="$PROJECT_ROOT/dist"
cd "$PROJECT_ROOT"
echo "========================================"
echo " RedisClipSync - Build Slave Release"
echo "========================================"
echo
echo "[1/4] Packaging application jar..."
mvn -f code/pom.xml -q clean package -DskipTests
VERSION="$(mvn -f code/pom.xml -q -DforceStdout help:evaluate -Dexpression=project.version)"
VERSION="${VERSION##*$'\n'}"
PACKAGE_NAME="redis-clip-sync-slave-${VERSION}"
STAGE_DIR="$DIST_DIR/$PACKAGE_NAME"
ARCHIVE_PATH="$DIST_DIR/${PACKAGE_NAME}.tar.gz"
echo "[2/4] Preparing release directory..."
rm -rf "$STAGE_DIR"
mkdir -p "$STAGE_DIR"
mkdir -p "$STAGE_DIR/bin" "$STAGE_DIR/lib" "$STAGE_DIR/conf" "$STAGE_DIR/systemd" "$STAGE_DIR/logs" "$STAGE_DIR/run"
cp "$PROJECT_ROOT/code/target/redis-clip-sync.jar" "$STAGE_DIR/lib/redis-clip-sync.jar"
cp "$PROJECT_ROOT/config.slave.properties.example" "$STAGE_DIR/conf/config.properties"
cp "$PROJECT_ROOT/linux/slave-package/bin/start.sh" "$STAGE_DIR/bin/start.sh"
cp "$PROJECT_ROOT/linux/slave-package/bin/stop.sh" "$STAGE_DIR/bin/stop.sh"
cp "$PROJECT_ROOT/linux/slave-package/bin/status.sh" "$STAGE_DIR/bin/status.sh"
cp "$PROJECT_ROOT/linux/slave-package/bin/logs.sh" "$STAGE_DIR/bin/logs.sh"
cp "$PROJECT_ROOT/linux/slave-package/bin/install-slave.sh" "$STAGE_DIR/bin/install-slave.sh"
cp "$PROJECT_ROOT/linux/slave-package/systemd/redis-clip-sync.service.tpl" "$STAGE_DIR/systemd/redis-clip-sync.service.tpl"
chmod +x "$STAGE_DIR/bin/start.sh" "$STAGE_DIR/bin/stop.sh" "$STAGE_DIR/bin/status.sh" "$STAGE_DIR/bin/logs.sh" "$STAGE_DIR/bin/install-slave.sh"
cat > "$STAGE_DIR/README_DEPLOY.md" <<'EOF'
# Slave Deploy Quick Start
1. Edit `conf/config.properties`.
2. Install and enable startup service:
```bash
sudo ./bin/install-slave.sh
```
3. Check service status:
```bash
systemctl status redis-clip-sync
```
EOF
echo "[3/4] Creating tar.gz archive..."
mkdir -p "$DIST_DIR"
tar -czf "$ARCHIVE_PATH" -C "$DIST_DIR" "$PACKAGE_NAME"
echo "[4/4] Done"
echo "Release directory: $STAGE_DIR"
echo "Release archive: $ARCHIVE_PATH"