You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sessioncommunities.online/Makefile

72 lines
1.4 KiB
Makefile

port = 8081
output = output
# First goal is the default with `make`.
# List make scripts.
list:
grep "^[^[:space:]]*:" Makefile --before-context=1 --group-separator=""
## Using make dependencies is duplicating behaviour but reads better.
# /bin/php php/update-listing.php
# Refresh listing and generate HTML.
all: fetch html
# Fetch room listing.
fetch:
/bin/php php/fetch-servers.php
# Generate HTML from data.
html:
/bin/php php/generate-html.php
# Last item run in foreground to receive interrupts.
# Serve a local copy which responds to file changes.
dev: open
make server &
make watchdog
# Serve a local copy on LAN which responds to file changes.
lan-dev: open
ip addr | fgrep -e ' 192.' -e ' 10.'
make lan-server &
make watchdog
# Serve a local copy.
server:
/bin/php -S localhost:$(port) -t $(output)
# Serve a local copy on all interfaces.
lan-server:
/bin/php -S 0.0.0.0:$(port) -t $(output)
# Open locally served page in browser.
open:
xdg-open http://localhost:$(port) >/dev/null 2>/dev/null & disown
# Update HTML on file change. Doesn't check for new files.
watchdog:
find . | entr -n -s "make html"
# Remove artefacts
clean:
-rm -r cache
-rm -r output/*.html
# Build everything from scratch and test functionality.
test: clean all open server
# Build everything from scratch and test functionality on LAN.
test-lan: clean all open lan-server
# -- Aliases --
serve: server
lan-serve: lan-server
data: fetch
watch: watchdog