# Jobs Scraper Monorepo Makefile # Variables APP_NAME=jobs-scraper API_DIR=./api SCRAPER_DIR=./services/scraper DOCS_DIR=./docs BIN_DIR=./bin MAIN_FILE=$(API_DIR)/main.go SCRAPER_MAIN_FILE=$(SCRAPER_DIR)/main.go CRON_DIR=./cmd/cron-analyzer CRON_MAIN_FILE=$(CRON_DIR)/main.go MIGRATE_DIR=./cmd/migrate MIGRATE_MAIN_FILE=$(MIGRATE_DIR)/main.go # Default target .DEFAULT_GOAL := help # RabbitMQ server rabbitmq-server: @echo "Starting RabbitMQ server..." docker run --rm -p 5672:5672 -p 15672:15672 rabbitmq:3-management .PHONY: run run: ## Run the API application @echo "Running $(APP_NAME) API..." @go run $(MAIN_FILE) .PHONY: scraper scraper: ## Run the scraper service @echo "Running scraper service..." @cd $(SCRAPER_DIR) && go run main.go .PHONY: build-scraper build-scraper: ## Build the scraper service @echo "Building scraper service..." @cd $(SCRAPER_DIR) && go build -o scraper main.go .PHONY: cron cron: ## Run the job analysis cron service @echo "Starting Job Analysis Cron Service..." @go run $(CRON_MAIN_FILE) .PHONY: migrate migrate: ## Run database migrations @echo "Running database migrations..." @go run $(MIGRATE_MAIN_FILE) .PHONY: clean clean: ## Clean build artifacts @echo "Cleaning build artifacts..." @rm -rf $(BIN_DIR) @rm -f $(SCRAPER_DIR)/scraper @echo "Clean complete" .PHONY: help help: ## Show this help message @echo "Jobs Scraper Monorepo - Available commands:" @echo "" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}' # Swagger documentation .PHONY: swagger swagger: ## Generate Swagger documentation @echo "Generating Swagger documentation..." @go run github.com/swaggo/swag/cmd/swag@latest init -g $(MAIN_FILE) -o $(DOCS_DIR) @echo "Swagger documentation generated in $(DOCS_DIR)/" # Docker operations (if needed in the future) .PHONY: docker-build docker-build: ## Build Docker image @echo "Building Docker image..." @docker build -t $(APP_NAME) . @echo "Docker image built: $(APP_NAME)" .PHONY: docker-run docker-run: ## Run Docker container @echo "Running Docker container..." @docker run -p 8080:8080 $(APP_NAME)