mirror of
https://github.com/bybrooklyn/openbitdo.git
synced 2026-03-19 04:12:56 -04:00
release: prepare v0.0.1-rc.4
This commit is contained in:
98
packaging/homebrew/test_sync_tap.sh
Executable file
98
packaging/homebrew/test_sync_tap.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
TMP="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMP"' EXIT
|
||||
|
||||
MOCK_BIN="$TMP/bin"
|
||||
mkdir -p "$MOCK_BIN"
|
||||
|
||||
cat >"$MOCK_BIN/gh" <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
STATE_DIR="${MOCK_GH_STATE_DIR:?}"
|
||||
|
||||
if [[ "${1:-}" != "api" ]]; then
|
||||
echo "mock gh only supports api" >&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
|
||||
method="GET"
|
||||
if [[ "${1:-}" == "--method" ]]; then
|
||||
method="$2"
|
||||
shift 2
|
||||
fi
|
||||
|
||||
endpoint="$1"
|
||||
shift
|
||||
|
||||
case "${method}:${endpoint}" in
|
||||
GET:repos/*/contents/Formula/openbitdo.rb\?ref=main)
|
||||
if [[ -f "$STATE_DIR/remote_formula.rb" ]]; then
|
||||
content="$(base64 < "$STATE_DIR/remote_formula.rb" | tr -d '\n')"
|
||||
printf '{"sha":"remote-sha","content":"%s"}\n' "$content"
|
||||
exit 0
|
||||
fi
|
||||
exit 1
|
||||
;;
|
||||
PUT:repos/*/contents/Formula/openbitdo.rb)
|
||||
content=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
if [[ "$1" == "-f" ]]; then
|
||||
case "$2" in
|
||||
content=*)
|
||||
content="${2#content=}"
|
||||
;;
|
||||
esac
|
||||
shift 2
|
||||
else
|
||||
shift
|
||||
fi
|
||||
done
|
||||
printf '%s' "$content" | base64 --decode >"$STATE_DIR/updated_formula.rb"
|
||||
echo "put" >>"$STATE_DIR/requests.log"
|
||||
printf '{"content":{"sha":"new-sha"}}\n'
|
||||
;;
|
||||
*)
|
||||
echo "unexpected mock gh call: ${method} ${endpoint}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
EOF
|
||||
chmod +x "$MOCK_BIN/gh"
|
||||
|
||||
FORMULA_SOURCE="$TMP/openbitdo.rb"
|
||||
cat >"$FORMULA_SOURCE" <<'EOF'
|
||||
class Openbitdo < Formula
|
||||
desc "OpenBitdo"
|
||||
end
|
||||
EOF
|
||||
|
||||
run_sync() {
|
||||
PATH="$MOCK_BIN:$PATH" \
|
||||
MOCK_GH_STATE_DIR="$TMP/mock-state" \
|
||||
GH_TOKEN="job-token" \
|
||||
HOMEBREW_TAP_TOKEN="tap-token" \
|
||||
HOMEBREW_TAP_REPO="bybrooklyn/homebrew-openbitdo" \
|
||||
HOMEBREW_PUBLISH_ENABLED="1" \
|
||||
FORMULA_SOURCE="$FORMULA_SOURCE" \
|
||||
bash "$ROOT/packaging/homebrew/sync_tap.sh"
|
||||
}
|
||||
|
||||
mkdir -p "$TMP/mock-state"
|
||||
cp "$FORMULA_SOURCE" "$TMP/mock-state/remote_formula.rb"
|
||||
run_sync >"$TMP/noop.out"
|
||||
grep -Fq "no formula changes to push" "$TMP/noop.out"
|
||||
test ! -f "$TMP/mock-state/updated_formula.rb"
|
||||
|
||||
cat >"$TMP/mock-state/remote_formula.rb" <<'EOF'
|
||||
class Openbitdo < Formula
|
||||
desc "Old formula"
|
||||
end
|
||||
EOF
|
||||
run_sync >"$TMP/update.out"
|
||||
grep -Fq "updated bybrooklyn/homebrew-openbitdo:Formula/openbitdo.rb" "$TMP/update.out"
|
||||
cmp -s "$FORMULA_SOURCE" "$TMP/mock-state/updated_formula.rb"
|
||||
Reference in New Issue
Block a user