SHELL := bash

run_django = docker-compose run --rm django
manage_py = ${run_django} ./manage.py

check-imports:
	isort --check-only --diff lms config

sort-imports:
	isort lms config

flake:
	flake8 lms config

bandit:
	bandit -c bandit.yml -r lms config

check:
	${manage_py} check

check-migrations:
	${manage_py} makemigrations --dry-run --check

lint: sort-imports flake bandit check check-migrations swagger

bash:
	${run_django} bash

shell:
	${manage_py} shell

shell_plus:
	${manage_py} shell_plus

migrate:
	${manage_py} migrate ${args}

makemigrations:
	${manage_py} makemigrations ${args}

createsuperuser:
	${manage_py} createsuperuser

test:
	${run_django} pytest ${args}

run:
	docker-compose up django nginx

swagger-api:
	${manage_py} spectacular --urlconf config.urls.api --format openapi-json --lang ru_RU --file schema/api.json

swagger-labapi:
	${manage_py} spectacular --urlconf config.urls.labapi --format openapi-json --lang ru_RU --file schema/labapi.json

swagger-externalapi:
	${manage_py} spectacular --urlconf config.urls.externalapi --format openapi-json --lang ru_RU --file schema/externalapi.json

swagger: swagger-api swagger-labapi swagger-externalapi

check-swagger:
	${run_django} bash -c "./check-swagger.sh api && ./check-swagger.sh labapi && ./check-swagger.sh externalapi"

buckets:
	docker-compose run --rm create-buckets

environ:
	while read -d $'\0' ENV; do export "$ENV"; done < /proc/${if ${pid},${pid},3}/environ
