49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
FIXTURE=$(mktemp -d)
|
|
trap 'rm -rf "$FIXTURE"' EXIT
|
|
|
|
ROOT="$FIXTURE/root"
|
|
mkdir -p "$FIXTURE/web" "$FIXTURE/bin" "$ROOT/env"
|
|
printf '<!doctype html><div id="root"></div>\n' > "$FIXTURE/web/index.html"
|
|
printf 'binary\n' > "$FIXTURE/open-platform-api"
|
|
tar -C "$FIXTURE/web" -czf "$FIXTURE/web.tar.gz" .
|
|
cat > "$ROOT/env/open-platform.env" <<'EOF'
|
|
OPEN_PLATFORM_HTTP_ADDR=:20310
|
|
EOF
|
|
|
|
cat > "$FIXTURE/bin/systemctl" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
case "$1" in
|
|
restart|stop) exit 0 ;;
|
|
is-active) exit 0 ;;
|
|
esac
|
|
EOF
|
|
cat > "$FIXTURE/bin/curl" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
url=${@: -1}
|
|
case "$url" in
|
|
*/healthz) printf '{"status":"ok"}\n' ;;
|
|
*/open-api/openapi.yaml) printf 'openapi: 3.0.3\n' ;;
|
|
*/portal-api/catalog) printf '{"data":[{"code":"daily_hydrogen"}]}\n' ;;
|
|
*) printf '<div id="root"></div>\n' ;;
|
|
esac
|
|
EOF
|
|
chmod +x "$FIXTURE/bin/systemctl" "$FIXTURE/bin/curl"
|
|
|
|
OPEN_PLATFORM_ROOT="$ROOT" \
|
|
SYSTEMCTL_BIN="$FIXTURE/bin/systemctl" \
|
|
CURL_BIN="$FIXTURE/bin/curl" \
|
|
"$SCRIPT_DIR/install-open-platform-release.sh" release-1 "$FIXTURE/web.tar.gz" "$FIXTURE/open-platform-api"
|
|
|
|
test "$(readlink "$ROOT/current")" = "$ROOT/releases/release-1"
|
|
test -x "$ROOT/current/open-platform-api"
|
|
test -f "$ROOT/current/web/index.html"
|
|
grep -q '^OPEN_PLATFORM_RELEASE=release-1$' "$ROOT/env/open-platform.env"
|
|
printf 'install_open_platform_release_test=ok\n'
|