generateMakefile static method

String generateMakefile(
  1. String projectName
)

Implementation

static String generateMakefile(String projectName) {
  return '''
.PHONY: help build run stop clean dev logs restart

# Default target
help:
\t@echo "Available commands:"
\t@echo "  make build     - Build Docker image"
\t@echo "  make run       - Run production containers"
\t@echo "  make dev       - Run development server with hot reload"
\t@echo "  make stop      - Stop all containers"
\t@echo "  make clean     - Remove containers and images"
\t@echo "  make logs      - Show container logs"
\t@echo "  make restart   - Restart containers"
\t@echo "  make shell     - Open shell in web container"
\t@echo "  make db-shell  - Open PostgreSQL shell"

# Build Docker image
build:
\t@echo "Building Docker image..."
\tdocker-compose build

# Run production containers
run:
\t@echo "Starting production containers..."
\tdocker-compose up -d

# Run development server
dev:
\t@echo "Starting development server..."
\tdocker-compose --profile dev up dev

# Stop all containers
stop:
\t@echo "Stopping containers..."
\tdocker-compose down

# Clean up containers and images
clean:
\t@echo "Cleaning up..."
\tdocker-compose down -v
\tdocker system prune -f

# Show logs
logs:
\tdocker-compose logs -f

# Restart containers
restart:
\t@echo "Restarting containers..."
\tdocker-compose restart

# Open shell in web container
shell:
\tdocker exec -it ${projectName}_web sh

# Open PostgreSQL shell
db-shell:
\tdocker exec -it ${projectName}_postgres psql -U postgres -d ${projectName}_db

# Run flutter pub get
pub-get:
\tdocker-compose run --rm web flutter pub get

# Build web release
build-web:
\tdocker-compose run --rm web flutter build web --release
''';
}