.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