xref: /plugin/deletepageguard/Makefile (revision 9a383d51b90310842e2a3f0f9d693178d0875b32)
1c176b8b3SJohann Duscher# Delete Page Guard Plugin - Developer Tools
2c176b8b3SJohann Duscher#
3*9a383d51SJohann Duscher# Professional Makefile for development, testing, and release management
4c176b8b3SJohann Duscher
5*9a383d51SJohann Duscher.PHONY: test check clean dist release version help
6c176b8b3SJohann Duscher
7c176b8b3SJohann Duscher# Default target
8c176b8b3SJohann Duscherhelp:
9c176b8b3SJohann Duscher	@echo "Delete Page Guard Plugin - Developer Tools"
10c176b8b3SJohann Duscher	@echo "=========================================="
11c176b8b3SJohann Duscher	@echo ""
12*9a383d51SJohann Duscher	@echo "Development targets:"
13c176b8b3SJohann Duscher	@echo "  test    - Run the test suite"
14c176b8b3SJohann Duscher	@echo "  check   - Check PHP syntax of all files"
15c176b8b3SJohann Duscher	@echo "  clean   - Clean temporary files"
16*9a383d51SJohann Duscher	@echo ""
17*9a383d51SJohann Duscher	@echo "Release targets:"
18*9a383d51SJohann Duscher	@echo "  version [VERSION=x.y.z] - Update version in all files"
19*9a383d51SJohann Duscher	@echo "  dist    - Create distribution ZIP file"
20*9a383d51SJohann Duscher	@echo "  release [VERSION=x.y.z]  - Complete release workflow"
21*9a383d51SJohann Duscher	@echo ""
22*9a383d51SJohann Duscher	@echo "Utility targets:"
23*9a383d51SJohann Duscher	@echo "  status  - Show current version and git status"
24c176b8b3SJohann Duscher	@echo "  help    - Show this help message"
25c176b8b3SJohann Duscher
26c176b8b3SJohann Duscher# Run the test suite
27c176b8b3SJohann Duschertest:
28c176b8b3SJohann Duscher	@echo "Running test suite..."
29c176b8b3SJohann Duscher	php tests/test_runner.php
30c176b8b3SJohann Duscher
31c176b8b3SJohann Duscher# Check syntax of all PHP files
32c176b8b3SJohann Duschercheck:
33c176b8b3SJohann Duscher	@echo "Checking PHP syntax..."
34c176b8b3SJohann Duscher	@find . -name "*.php" -not -path "./tests/*" -exec php -l {} \;
35c176b8b3SJohann Duscher	@echo "Syntax check complete."
36c176b8b3SJohann Duscher
37*9a383d51SJohann Duscher# Clean temporary files and build artifacts
38c176b8b3SJohann Duscherclean:
39*9a383d51SJohann Duscher	@echo "Cleaning temporary files and build artifacts..."
40c176b8b3SJohann Duscher	@find . -name "*~" -delete
41c176b8b3SJohann Duscher	@find . -name "*.tmp" -delete
42*9a383d51SJohann Duscher	@rm -rf dist/
43c176b8b3SJohann Duscher	@echo "Clean complete."
44*9a383d51SJohann Duscher
45*9a383d51SJohann Duscher# Update version in all files
46*9a383d51SJohann Duscherversion:
47*9a383d51SJohann Duscherifndef VERSION
48*9a383d51SJohann Duscher	@echo "Error: VERSION parameter required"
49*9a383d51SJohann Duscher	@echo "Usage: make version VERSION=1.2.3"
50*9a383d51SJohann Duscher	@exit 1
51*9a383d51SJohann Duscherendif
52*9a383d51SJohann Duscher	@echo "Updating version to $(VERSION)..."
53*9a383d51SJohann Duscher	php build/update-version.php $(VERSION)
54*9a383d51SJohann Duscher	@echo "Version update complete."
55*9a383d51SJohann Duscher
56*9a383d51SJohann Duscher# Create distribution ZIP file
57*9a383d51SJohann Duscherdist: check test
58*9a383d51SJohann Duscher	@echo "Creating distribution package..."
59*9a383d51SJohann Duscher	php build/create-dist.php
60*9a383d51SJohann Duscher
61*9a383d51SJohann Duscher# Complete release workflow
62*9a383d51SJohann Duscherrelease: check test
63*9a383d51SJohann Duscherifndef VERSION
64*9a383d51SJohann Duscher	@echo "Error: VERSION parameter required"
65*9a383d51SJohann Duscher	@echo "Usage: make release VERSION=1.2.3"
66*9a383d51SJohann Duscher	@exit 1
67*9a383d51SJohann Duscherendif
68*9a383d51SJohann Duscher	@echo "Starting release workflow for version $(VERSION)..."
69*9a383d51SJohann Duscher	@make version VERSION=$(VERSION)
70*9a383d51SJohann Duscher	@echo "Please update CHANGELOG.md with release notes, then run:"
71*9a383d51SJohann Duscher	@echo "  git add -A"
72*9a383d51SJohann Duscher	@echo "  git commit -m 'Release version $(VERSION)'"
73*9a383d51SJohann Duscher	@echo "  git tag v$(VERSION)"
74*9a383d51SJohann Duscher	@echo "  make dist"
75*9a383d51SJohann Duscher	@echo "  git push origin main --tags"
76*9a383d51SJohann Duscher
77*9a383d51SJohann Duscher# Show current status
78*9a383d51SJohann Duscherstatus:
79*9a383d51SJohann Duscher	@php build/show-status.php
80*9a383d51SJohann Duscher	@echo "Git status:"
81*9a383d51SJohann Duscher	@git status --short || echo "Not a git repository"