112 lines
2.7 KiB
Makefile
112 lines
2.7 KiB
Makefile
#!make
|
|
SHELL := /bin/bash
|
|
|
|
export API_VERSION = $(shell awk -F ' = ' '$$1 ~ /package.version/ { gsub(/[\"]/, "", $$2); printf("%s",$$2) }' api/Cargo.toml)
|
|
export UI_VERSION := $(shell awk -F'"' '/"version"/ { print $$4 }' ui/package.json)
|
|
|
|
include .env
|
|
-include .env.local
|
|
export
|
|
|
|
.PHONY: help build start stop lint
|
|
|
|
help: ## This info
|
|
@echo
|
|
@cat Makefile | grep -E '^[a-zA-Z\/_-]+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
@echo
|
|
|
|
format: format-api format-ui ## Format code
|
|
|
|
psql: ## Connect to the PSQL DB
|
|
@docker exec -it aviation-postgres psql -U ${POSTGRES_USER} -P pager=off
|
|
|
|
#################
|
|
# API Commands #
|
|
#################
|
|
|
|
format-api: ## Format code
|
|
@cd api && cargo fmt
|
|
|
|
build-api: ## Build the project
|
|
@cd api && cargo build
|
|
|
|
run-api: ## Run the API project
|
|
@cd api && cargo run -p api
|
|
|
|
#################
|
|
# UI Commands #
|
|
#################
|
|
|
|
lint-ui: ## Run the linter
|
|
@cd ui && npm run lint
|
|
|
|
format-ui: ## Run the formatter
|
|
@cd ui && npm run format
|
|
|
|
build-ui: ## Build the UI app
|
|
@cd ui && npm install && npm run build
|
|
|
|
clean-ui: ## Remove UI build files
|
|
@cd ui && rm -rf node_modules dist
|
|
|
|
run-ui: ## Run the UI app
|
|
@cd ui && npm install && npm run dev
|
|
|
|
###################
|
|
# Docker Commands #
|
|
###################
|
|
|
|
backend-up: ## Start Docker containers
|
|
@docker compose --profile backend up -d
|
|
|
|
up-backend: backend-up
|
|
|
|
backend-down: ## Stop Docker containers
|
|
@docker compose --profile backend down
|
|
|
|
down-backend: backend-down
|
|
|
|
run: ## Run the api
|
|
@cd api && cargo run
|
|
|
|
frontend-up: ## Start Docker containers
|
|
@docker compose --profile frontend up -d
|
|
|
|
up-frontend: frontend-up
|
|
|
|
frontend-down: ## Stop Docker containers
|
|
@docker compose --profile frontend down
|
|
|
|
down-frontend: frontend-down
|
|
|
|
docker-prune: ## Prune the docker system
|
|
@docker system prune -a
|
|
|
|
docker-clean: ## Stop the docker containers and remove volumes
|
|
@docker compose --profile frontend --profile api --profile backend down -v
|
|
|
|
docker-down: ## Stop the docker container
|
|
@docker compose --profile frontend --profile api --profile backend down
|
|
|
|
docker-up: ## Start the docker container
|
|
@docker compose --profile backend --profile api --profile frontend up -d
|
|
|
|
docker-refresh: docker-clean up-backend ## Refresh the database
|
|
|
|
refresh: docker-refresh
|
|
|
|
build: version=$(if $(v),$(v),latest)
|
|
build: folder=$(if $(f),$(f),httpd)
|
|
build: image=aviation-${folder}:${version}
|
|
build: ## Build a specific docker image (`make build f=httpd`)
|
|
docker buildx build \
|
|
-f ${folder}/Dockerfile \
|
|
-t ${image} \
|
|
--load \
|
|
--build-arg BUILD_DATE=$$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
|
|
--build-arg BUILD_VERSION=${version} \
|
|
--build-arg VCS_REF=$$(git rev-parse head) \
|
|
${folder}
|
|
|
|
docker-build: build
|