simulator := "platform=iOS Simulator,name=iPhone 16e,OS=latest"
simulator_name := "iPhone 16e"
derived_data := "build/DerivedData"

default:
  @just build

generate:
  xcodegen --spec project.yml

build: generate
  if command -v xcbeautify >/dev/null 2>&1; then \
    xcodebuild -scheme Sybil -destination '{{simulator}}' | xcbeautify; \
  else \
    xcodebuild -scheme Sybil -destination '{{simulator}}'; \
  fi

test:
  cd Packages/Sybil && xcodebuild test -scheme Sybil -destination '{{simulator}}' -parallel-testing-enabled NO

run: generate
  xcrun simctl boot '{{simulator_name}}' 2>/dev/null || true
  xcodebuild -scheme Sybil -destination '{{simulator}}' -derivedDataPath '{{derived_data}}'
  xcrun simctl install booted '{{derived_data}}/Build/Products/Debug-iphonesimulator/Sybil.app'
  xcrun simctl launch booted net.buzzert.sybil2

beta:
  fastlane ios beta

screenshot path="build/sybil-screenshot.png":
  mkdir -p "$(dirname '{{path}}')"
  xcrun simctl io booted screenshot '{{path}}'
