mirror of
https://github.com/chenasraf/homebrew-tap.git
synced 2026-05-17 17:28:04 +00:00
106 lines
3.5 KiB
Makefile
106 lines
3.5 KiB
Makefile
.PHONY: update-hash
|
|
update-hash:
|
|
@if [ -z "$$REPO_NAME" ]; then \
|
|
read -r -p "Enter repository name: " REPO_NAME; \
|
|
else \
|
|
REPO_NAME="$$REPO_NAME"; \
|
|
fi; \
|
|
VERSION=$$(curl -s "https://api.github.com/repos/chenasraf/$$REPO_NAME/releases/latest" | jq -r .tag_name); \
|
|
URL="https://github.com/chenasraf/$$REPO_NAME/archive/refs/tags/$$VERSION.tar.gz"; \
|
|
echo "Version: $$VERSION"; \
|
|
echo "URL: $$URL"; \
|
|
curl -Ls "$$URL" -o "$$REPO_NAME-$$VERSION.tar.gz"; \
|
|
HASH=$$(sha256sum "$$REPO_NAME-$$VERSION.tar.gz" | awk '{print $$1}'); \
|
|
printf "SHA256: %s\n" "$$HASH"; \
|
|
rm "$$REPO_NAME-$$VERSION.tar.gz"; \
|
|
sed -i.bak "s/sha256 \".*\"/sha256 \"$$HASH\"/" "Formula/$$REPO_NAME.rb"; \
|
|
rm "Formula/$$REPO_NAME.rb.bak"; \
|
|
sed -i.bak "s| url \".*\"| url \"$$URL\"|" "Formula/$$REPO_NAME.rb"; \
|
|
rm "Formula/$$REPO_NAME.rb.bak"
|
|
|
|
.PHONY: create-app-update
|
|
create-app-update:
|
|
@if [ -z "$$REPO_NAME" ]; then \
|
|
read -r -p "Enter repository name: " REPO_NAME; \
|
|
else \
|
|
REPO_NAME="$$REPO_NAME"; \
|
|
fi; \
|
|
$(MAKE) update-hash REPO_NAME="$$REPO_NAME"; \
|
|
VERSION=$$(curl -s "https://api.github.com/repos/chenasraf/$$REPO_NAME/releases/latest" | jq -r .tag_name); \
|
|
echo "Version: $$VERSION"; \
|
|
BRANCH="feature/$$REPO_NAME-$$VERSION"; \
|
|
if ! git switch -C "$$BRANCH"; then \
|
|
echo "Branch already exists, aborting"; \
|
|
exit 1; \
|
|
fi; \
|
|
git add "Formula/$$REPO_NAME.rb"; \
|
|
git commit -m "feat: update $$REPO_NAME to $$VERSION"; \
|
|
git push --force --set-upstream origin "$$BRANCH"; \
|
|
if [ -n "$$PR_BODY" ]; then \
|
|
printf '%s\n' "$$PR_BODY" > /tmp/pr_body.md; \
|
|
gh pr create --fill --body-file /tmp/pr_body.md; \
|
|
PR_EXIT=$$?; \
|
|
rm -f /tmp/pr_body.md; \
|
|
else \
|
|
gh pr create --fill; \
|
|
PR_EXIT=$$?; \
|
|
fi; \
|
|
if [ $$PR_EXIT -eq 0 ]; then \
|
|
URL=$$(gh pr list --json url | jq -r '.[0].url'); \
|
|
open "$$URL"; \
|
|
git switch master; \
|
|
else \
|
|
echo "Couldn't create PR, aborting"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
.PHONY: create-app
|
|
create-app:
|
|
@if [ -z "$$REPO_NAME" ]; then \
|
|
read -r -p "Enter repository name: " REPO_NAME; \
|
|
else \
|
|
REPO_NAME="$$REPO_NAME"; \
|
|
fi; \
|
|
if [ -f "Formula/$$REPO_NAME.rb" ]; then \
|
|
echo "Formula/$$REPO_NAME.rb already exists, aborting"; \
|
|
exit 1; \
|
|
fi; \
|
|
VERSION=$$(curl -s "https://api.github.com/repos/chenasraf/$$REPO_NAME/releases/latest" | jq -r .tag_name); \
|
|
if [ -z "$$VERSION" ] || [ "$$VERSION" = "null" ]; then \
|
|
echo "Could not fetch latest version for $$REPO_NAME, aborting"; \
|
|
exit 1; \
|
|
fi; \
|
|
URL="https://github.com/chenasraf/$$REPO_NAME/archive/refs/tags/$$VERSION.tar.gz"; \
|
|
HOMEBREW_EDITOR=cat brew create --tap chenasraf/tap --set-name "$$REPO_NAME" "$$URL"; \
|
|
echo "Created Formula/$$REPO_NAME.rb"; \
|
|
echo "Version: $$VERSION"; \
|
|
echo "URL: $$URL"; \
|
|
echo ""; \
|
|
echo "Please edit Formula/$$REPO_NAME.rb and press Enter when done..."; \
|
|
read -r _; \
|
|
BRANCH="feature/$$REPO_NAME-$$VERSION"; \
|
|
if ! git switch -C "$$BRANCH"; then \
|
|
echo "Branch already exists, aborting"; \
|
|
exit 1; \
|
|
fi; \
|
|
git add "Formula/$$REPO_NAME.rb"; \
|
|
git commit -m "feat: add $$REPO_NAME $$VERSION"; \
|
|
git push --force --set-upstream origin "$$BRANCH"; \
|
|
if [ -n "$$PR_BODY" ]; then \
|
|
printf '%s\n' "$$PR_BODY" > /tmp/pr_body.md; \
|
|
gh pr create --fill --body-file /tmp/pr_body.md; \
|
|
PR_EXIT=$$?; \
|
|
rm -f /tmp/pr_body.md; \
|
|
else \
|
|
gh pr create --fill; \
|
|
PR_EXIT=$$?; \
|
|
fi; \
|
|
if [ $$PR_EXIT -eq 0 ]; then \
|
|
URL=$$(gh pr list --json url | jq -r '.[0].url'); \
|
|
open "$$URL"; \
|
|
git switch master; \
|
|
else \
|
|
echo "Couldn't create PR, aborting"; \
|
|
exit 1; \
|
|
fi
|