71 lines
1.9 KiB
Bash
Executable file
71 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Start the recognition server and write ignored local app endpoints.
|
|
#
|
|
# ./run-demo-server.sh
|
|
# ./run-demo-server.sh stock-milk150
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
cd "$(dirname "$0")"
|
|
|
|
STOCK="${1:-stock-lopia}"
|
|
PORT="${PORT:-8099}"
|
|
TOKEN_FILE=".demo-token"
|
|
|
|
if [ ! -d "$STOCK" ]; then
|
|
echo "no such store: $STOCK" >&2
|
|
exit 1
|
|
fi
|
|
|
|
IP="$(ipconfig getifaddr en0 2>/dev/null || ipconfig getifaddr en1 2>/dev/null || true)"
|
|
if [ -z "$IP" ]; then
|
|
echo "this Mac has no LAN address; the phone cannot reach it" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -s "$TOKEN_FILE" ]; then
|
|
umask 077
|
|
openssl rand -hex 32 > "$TOKEN_FILE"
|
|
fi
|
|
TOKEN="$(tr -d '[:space:]' < "$TOKEN_FILE")"
|
|
|
|
umask 077
|
|
cat > "$ROOT/iosApp/Configuration/Config.local.xcconfig" <<EOF
|
|
APP_RECOGNITION_BASE_URL = http:/\$()/$IP:$PORT
|
|
APP_RECOGNITION_API_TOKEN = $TOKEN
|
|
EOF
|
|
|
|
mkdir -p config
|
|
cat > config/local.env <<EOF
|
|
DORAYAKI_API_TOKEN=$TOKEN
|
|
EOF
|
|
|
|
PROPERTIES="$ROOT/androidApp/local.properties"
|
|
touch "$PROPERTIES"
|
|
TMP="$(mktemp)"
|
|
awk -v url="app.recognitionBaseUrl=http://$IP:$PORT" -v token="app.recognitionApiToken=$TOKEN" '
|
|
BEGIN { url_found = 0; token_found = 0 }
|
|
$0 ~ /^app\.recognitionBaseUrl=/ { print url; url_found = 1; next }
|
|
$0 ~ /^app\.recognitionApiToken=/ { print token; token_found = 1; next }
|
|
{ print }
|
|
END {
|
|
if (!url_found) print url
|
|
if (!token_found) print token
|
|
}
|
|
' "$PROPERTIES" > "$TMP"
|
|
mv "$TMP" "$PROPERTIES"
|
|
|
|
cat <<EOF
|
|
Dorayaki demo server
|
|
store $STOCK
|
|
listening http://0.0.0.0:$PORT
|
|
phone URL http://$IP:$PORT
|
|
|
|
Local app configuration was updated. Rebuild both apps.
|
|
The API token is in $TOKEN_FILE and is not printed.
|
|
EOF
|
|
|
|
exec env YOLO_OFFLINE=1 DORAYAKI_STOCK_DIR="$STOCK" DORAYAKI_API_TOKEN="$TOKEN" \
|
|
.venv/bin/python -u code/app.py \
|
|
--port "$PORT" --host 0.0.0.0 --identity gallery \
|
|
--live-conf 0.15 --classify-workers 8
|