66 lines
2.1 KiB
Bash
Executable File
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"
|