Skip to content
Snippets Groups Projects
Makefile 1.67 KiB
Newer Older
Jules Saget's avatar
Jules Saget committed
SHELL := /bin/bash
PYTHON := python3
MANAGER := manage.py
DB := db.sqlite3
Dorian Lesbre's avatar
Dorian Lesbre committed
SECRET := interludes/secret.py
Jules Saget's avatar
Jules Saget committed

.PHONY: help
help: ## Show this help
	@egrep -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

.PHONY: install
install: ## Install requirements
	$(PYTHON) -m pip install --upgrade pip
	pip install -r requirements.txt

Dorian Lesbre's avatar
Dorian Lesbre committed
.PHONY: secret
secret: ## Link the secret_example.py to secret.py (only in dev mode)
Dorian Lesbre's avatar
Dorian Lesbre committed

Dorian Lesbre's avatar
Dorian Lesbre committed
secret $(SECRET):
	ln -s "$(PWD)/interludes/secret_example.py" interludes/secret.py
Jules Saget's avatar
Jules Saget committed
.PHONY: migrate
Dorian Lesbre's avatar
Dorian Lesbre committed
migrate: $(SECRET) ## Make and run migrations
Jules Saget's avatar
Jules Saget committed
	$(PYTHON) $(MANAGER) makemigrations
	$(PYTHON) $(MANAGER) migrate

.PHONY: serve
Dorian Lesbre's avatar
Dorian Lesbre committed
serve: $(SECRET) ## Run the django server
Jules Saget's avatar
Jules Saget committed
	$(PYTHON) $(MANAGER) runserver

.PHONY: host
Dorian Lesbre's avatar
Dorian Lesbre committed
host: $(SECRET) ## Host localy to access from same netword (make sure to add IP to ALLOWED_HOSTS)
	$(PYTHON) $(MANAGER) runserver 0.0.0.0:8000

Jules Saget's avatar
Jules Saget committed
.PHONY: start
start: install $(SECRET) migrate serve ## Install requirements, apply migrations, then start development server
Jules Saget's avatar
Jules Saget committed

.PHONY: clean
clean: ## Remove migrations and delete database
	find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
	find . -path "*/migrations/*.pyc" -delete
	rm $(DB)

.PHONY:	test
Dorian Lesbre's avatar
Dorian Lesbre committed
test: $(SECRET) ## Tests all the apps
Jules Saget's avatar
Jules Saget committed
	$(PYTHON) $(MANAGER) test
Dorian Lesbre's avatar
Dorian Lesbre committed

.PHONY: adduser
Dorian Lesbre's avatar
Dorian Lesbre committed
adduser: $(SECRET) ## Create a new superuser
Dorian Lesbre's avatar
Dorian Lesbre committed
	$(PYTHON) $(MANAGER) createsuperuser

.PHONY: shell
Dorian Lesbre's avatar
Dorian Lesbre committed
shell: $(SECRET) ## Run django's shell
Dorian Lesbre's avatar
Dorian Lesbre committed
	$(PYTHON) $(MANAGER) shell

.PHONY: static
Dorian Lesbre's avatar
Dorian Lesbre committed
static: $(SECRET) ## collect static files
Dorian Lesbre's avatar
Dorian Lesbre committed
	$(PYTHON) $(MANAGER) collectstatic

.PHONY: preprod
preprod: test static ## Prepare and check production
	$(PYTHON) $(MANAGER) check --deploy