Skip to content

WIP: Introduce justfile for usual commands #153

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions {{cookiecutter.project_slug}}/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ __pycache__

{%- if cookiecutter.virtualization_tool == 'docker' %}
/docker-compose.override.yml
/override.justfile
/venv
/.env
{%- endif %}
88 changes: 88 additions & 0 deletions {{cookiecutter.project_slug}}/justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
export BACKEND_CONTAINER := "backend"
export FRONTEND_CONTAINER := "frontend"

set allow-duplicate-recipes
set positional-arguments

default:
just --list

# Run the development server
start *args:
docker compose up "$@"

# Run bash in backend container
bash:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} bash

alias django := manage
alias dj := manage
# Run a Django manage.py command
manage *args:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py "$@"

# Run manage.py shell_plus
alias shell := shell_plus
alias sp := shell_plus
shell_plus *args:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py shell_plus "$@"

alias t := test
# Run the tests suite
test *args:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} pytest "$@"

alias validate := lint
alias l := lint
# Lint the code
lint:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} ruff check {{ cookiecutter.project_slug }} fabfile.py
docker compose exec {{ '{{' }} FRONTEND_CONTAINER }} npm run validate

alias fix := format
# Fix styling offenses and format code
format:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} ruff format {{ cookiecutter.project_slug }} fabfile.py
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} ruff check --fix {{ cookiecutter.project_slug }} fabfile.py
docker compose exec {{ '{{' }} FRONTEND_CONTAINER }} npm run format

alias c := compile
# Compile the requirements files
compile:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} pip-compile requirements/base.in
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} pip-compile requirements/test.in
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} pip-compile requirements/dev.in

alias i := install
# Install pip and npm dependencies
install file='requirements/dev.txt':
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} pip install -r {{ '{{' }} file }}
docker compose exec {{ '{{' }} FRONTEND_CONTAINER }} npm install

alias mm := makemigrations
# Generate database migrations
makemigrations *args:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py makemigrations "$@"

alias m := migrate
# Migrate the database
migrate:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add args to migrate.

docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py migrate

alias f := fixturize
# Reset the database and load the fixtures
fixturize *args:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py fixturize --yes "$@"

alias messages := translate
# Make messages and compile them
translate:
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py makemessages -a -i "requirements/*" -i "node_modules/*"
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py makemessages -a -d djangojs -i "node_modules/*" -i "static/*"
docker compose exec {{ '{{' }} BACKEND_CONTAINER }} python manage.py compilemessages

# Run npm command
npm *args:
docker compose exec {{ '{{' }} FRONTEND_CONTAINER }} npm "$@"

import? 'override.justfile'