diff --git a/README.md b/README.md index 12829eb..4cb7d44 100644 --- a/README.md +++ b/README.md @@ -14,24 +14,24 @@ This server provides synchronization between devices running Verstak2. It handle ## Quick Start ```bash -# Build -go build -o verstak-sync-server ./cmd/server +# Build (produces binary at build/bin/verstak-sync-server) +./scripts/build.sh # Run -./verstak-sync-server -port 47732 -data ./server-data +./build/bin/verstak-sync-server --port 47732 --data ./server-data # First run with admin user -./verstak-sync-server -admin-user admin -admin-pass secret +./build/bin/verstak-sync-server --admin-user admin --admin-pass secret ``` ## Configuration | Flag | Default | Description | |------|---------|-------------| -| `-port` | 47732 | HTTP port | -| `-data` | ./server-data | Data directory | -| `-admin-user` | | Create admin user (first run) | -| `-admin-pass` | | Admin password (first run) | +| `--port` | 47732 | HTTP port | +| `--data` | ./server-data | Data directory | +| `--admin-user` | | Create admin user (first run) | +| `--admin-pass` | | Admin password (first run) | ## Architecture diff --git a/scripts/build.sh b/scripts/build.sh index 2dd1026..ac949dc 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,21 +1,37 @@ #!/usr/bin/env bash set -euo pipefail -ROOT="$(cd "$(dirname "$0")/.." && pwd)" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +OUTPUT_DIR="$REPO_ROOT/build/bin" +BINARY="$OUTPUT_DIR/verstak-sync-server" -echo "=== verstak-sync-server build ===" -if [ -f "$ROOT/go.mod" ]; then - echo "[go build]" - (cd "$ROOT" && go build ./...) - echo " ✅ go build" - if go test -list . ./... &>/dev/null 2>&1; then - (cd "$ROOT" && go test -count=1 ./... 2>&1 || true) - else - echo " ℹ️ no tests" - fi -else - echo " ℹ️ repository empty — no build target yet" - echo " 📝 This repo will hold the Verstak sync server (CRDT-based)" +echo "=== Verstak Sync Server Build ===" + +# Check dependencies +if ! command -v go &>/dev/null; then + echo "❌ go not found" + exit 1 fi +echo "✅ go $(go version | awk '{print $3}')" + +# Clean +rm -rf "$OUTPUT_DIR" +mkdir -p "$OUTPUT_DIR" + +# Build +echo "→ Building server binary..." +cd "$REPO_ROOT" +go build -o "$BINARY" ./cmd/server +echo "✅ Binary built: $BINARY" +ls -lh "$BINARY" + +# Tests +echo "→ Running tests..." +go test ./... +echo "✅ Tests passed" + echo "" -echo "✅ build passed (no-op)" +echo "=== Build Complete ===" +echo "Binary: $BINARY" +echo "Run: $BINARY --help"