84 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# Makefile for Turmli Bar Calendar Tool
 | 
						|
.PHONY: help install run test clean docker-build docker-run docker-stop update dev
 | 
						|
 | 
						|
# Default target
 | 
						|
help:
 | 
						|
	@echo "Turmli Bar Calendar Tool - Available commands:"
 | 
						|
	@echo "  make install      - Install dependencies with uv"
 | 
						|
	@echo "  make run          - Run the server locally"
 | 
						|
	@echo "  make dev          - Run the server in development mode with reload"
 | 
						|
	@echo "  make test         - Run the test suite"
 | 
						|
	@echo "  make clean        - Remove cache files and Python artifacts"
 | 
						|
	@echo "  make update       - Update all dependencies"
 | 
						|
	@echo "  make docker-build - Build Docker container"
 | 
						|
	@echo "  make docker-run   - Run Docker container"
 | 
						|
	@echo "  make docker-stop  - Stop Docker container"
 | 
						|
 | 
						|
# Install dependencies
 | 
						|
install:
 | 
						|
	@echo "Installing dependencies with uv..."
 | 
						|
	uv sync
 | 
						|
 | 
						|
# Run the server
 | 
						|
run:
 | 
						|
	@echo "Starting Calendar Server..."
 | 
						|
	@echo "Access at: http://localhost:8000"
 | 
						|
	uv run uvicorn main:app --host 0.0.0.0 --port 8000
 | 
						|
 | 
						|
# Run in development mode with auto-reload
 | 
						|
dev:
 | 
						|
	@echo "Starting Calendar Server in development mode..."
 | 
						|
	@echo "Access at: http://localhost:8000"
 | 
						|
	uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload
 | 
						|
 | 
						|
# Run tests
 | 
						|
test:
 | 
						|
	@echo "Running test suite..."
 | 
						|
	@uv run python test_server.py
 | 
						|
 | 
						|
# Clean cache and temporary files
 | 
						|
clean:
 | 
						|
	@echo "Cleaning cache and temporary files..."
 | 
						|
	rm -f calendar_cache.json
 | 
						|
	rm -rf __pycache__
 | 
						|
	rm -rf .pytest_cache
 | 
						|
	rm -rf .mypy_cache
 | 
						|
	find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
 | 
						|
	find . -type f -name "*.pyc" -delete 2>/dev/null || true
 | 
						|
	find . -type f -name "*.pyo" -delete 2>/dev/null || true
 | 
						|
	find . -type f -name "*~" -delete 2>/dev/null || true
 | 
						|
	@echo "Clean complete!"
 | 
						|
 | 
						|
# Update dependencies
 | 
						|
update:
 | 
						|
	@echo "Updating dependencies..."
 | 
						|
	uv sync --upgrade
 | 
						|
 | 
						|
# Docker commands
 | 
						|
docker-build:
 | 
						|
	@echo "Building Docker image..."
 | 
						|
	docker build -t turmli-calendar:latest .
 | 
						|
 | 
						|
docker-run:
 | 
						|
	@echo "Running Docker container..."
 | 
						|
	docker-compose up -d
 | 
						|
	@echo "Container started! Access at: http://localhost:8000"
 | 
						|
 | 
						|
docker-stop:
 | 
						|
	@echo "Stopping Docker container..."
 | 
						|
	docker-compose down
 | 
						|
 | 
						|
# Check if server is running
 | 
						|
check:
 | 
						|
	@curl -s http://localhost:8000/api/events > /dev/null && \
 | 
						|
		echo "✓ Server is running" || \
 | 
						|
		echo "✗ Server is not running"
 | 
						|
 | 
						|
# Show logs (for Docker)
 | 
						|
logs:
 | 
						|
	docker-compose logs -f
 | 
						|
 | 
						|
# Refresh calendar manually
 | 
						|
refresh:
 | 
						|
	@echo "Refreshing calendar..."
 | 
						|
	@curl -X POST http://localhost:8000/api/refresh -s | python3 -m json.tool
 |