|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +echo "[INF] Running $0" |
| 6 | + |
| 7 | +if [ "$HOMEBREW_TAP_DEPLOY_KEY" = "" ] || [ "$TAG" = "" ] || [ "$TRIPLET" = "" ]; then |
| 8 | + echo "[ERR] One or more environment variable(s) are not set!" |
| 9 | + echo "[ERR] Set HOMEBREW_TAP_DEPLOY_KEY, TAG, and TRIPLET before running $0 script." |
| 10 | + exit 1 |
| 11 | +fi |
| 12 | + |
| 13 | +TAR="zsv-$TAG-$TRIPLET.tar.gz" |
| 14 | +TAR_URL="https://github.com/liquidaty/zsv/releases/download/v$TAG/$TAR" |
| 15 | +HOMEBREW_TAP_REPO= "[email protected]:liquidaty/homebrew-zsv.git" |
| 16 | +HOMEBREW_TAP_DIR="homebrew-zsv" |
| 17 | +HOMEBREW_TAP_FORMULA="formula/zsv.rb" |
| 18 | +HOMEBREW_TAP_DEPLOY_KEY_FILE="homebrew_tap_deploy_key_file" |
| 19 | + |
| 20 | +echo "[INF] Updating homebrew tap" |
| 21 | + |
| 22 | +echo "[INF] PWD: $PWD" |
| 23 | +echo "[INF] TAG: $TAG" |
| 24 | +echo "[INF] TAR: $TAR" |
| 25 | +echo "[INF] TAR_URL: $TAR_URL" |
| 26 | +echo "[INF] HOMEBREW_TAP_REPO: $HOMEBREW_TAP_REPO" |
| 27 | +echo "[INF] HOMEBREW_TAP_DIR: $HOMEBREW_TAP_DIR" |
| 28 | +echo "[INF] HOMEBREW_TAP_FORMULA: $HOMEBREW_TAP_FORMULA" |
| 29 | + |
| 30 | +echo "[INF] Downloading release tar file [$TAR_URL]" |
| 31 | +wget -q "$TAR_URL" |
| 32 | +ls -Gghl "$TAR" |
| 33 | + |
| 34 | +echo "[INF] Calculating SHA256 of $TAR" |
| 35 | +SHA256=$(openssl dgst -sha256 "$TAR" | cut -d ' ' -f2 | tr -d '\n') |
| 36 | +echo "[INF] SHA256: $SHA256" |
| 37 | +rm -f "$TAR" |
| 38 | + |
| 39 | +echo "[INF] Setting up GitHub credentials" |
| 40 | +echo "$HOMEBREW_TAP_DEPLOY_KEY" > $HOMEBREW_TAP_DEPLOY_KEY_FILE |
| 41 | +chmod 400 $HOMEBREW_TAP_DEPLOY_KEY_FILE |
| 42 | +export GIT_SSH_COMMAND="ssh -i $PWD/$HOMEBREW_TAP_DEPLOY_KEY_FILE -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" |
| 43 | +git config --global user.name "zsv-ci" |
| 44 | +git config --global user.email "zsv-ci@localhost" |
| 45 | + |
| 46 | +rm -rf "$HOMEBREW_TAP_DIR" |
| 47 | + |
| 48 | +git clone "$HOMEBREW_TAP_REPO" |
| 49 | +cd "$HOMEBREW_TAP_DIR" |
| 50 | + |
| 51 | +echo "[INF] Replacing 'url' and 'sha256' fields [$HOMEBREW_TAP_FORMULA]" |
| 52 | +sed -i -e "s|url .*|url '$TAR_URL'|" $HOMEBREW_TAP_FORMULA |
| 53 | +sed -i -e "s|sha256 .*|sha256 '$SHA256'|" $HOMEBREW_TAP_FORMULA |
| 54 | + |
| 55 | +DIFF=$(git diff "$HOMEBREW_TAP_FORMULA") |
| 56 | +if [ "$DIFF" = "" ]; then |
| 57 | + echo "[INF] 'url' and 'sha256' fields are the same." |
| 58 | + echo "[INF] Homebrew tap formula is already updated." |
| 59 | + echo "[INF] No changes required. Exiting!" |
| 60 | + exit 0 |
| 61 | +fi |
| 62 | + |
| 63 | +echo "[INF] --- git diff $HOMEBREW_TAP_FORMULA STARTS ---" |
| 64 | +echo "$DIFF" |
| 65 | +echo "[INF] ---- git diff $HOMEBREW_TAP_FORMULA ENDS ----" |
| 66 | + |
| 67 | +echo "[INF] Commiting and pushing changes" |
| 68 | +git add "$HOMEBREW_TAP_FORMULA" |
| 69 | +git commit -m "Automatic bump version to v$TAG." |
| 70 | +git push origin main |
| 71 | + |
| 72 | +cd .. |
| 73 | +rm -rf "$HOMEBREW_TAP_DIR" |
| 74 | + |
| 75 | +echo "[INF] Homebrew tap updated successfully!" |
| 76 | + |
| 77 | +echo "[INF] --- [DONE] ---" |
0 commit comments