Run Django management commands with a simple `dj {command_name}`. Can also use aliases for commands defined in a simple config file.
Project description
Why?
It is available everywhere if you install via pip
, has cute aliases defined in a JSON file (.dj-config.json
) per project, will run as many commands as you want, and defaults to Django management commands if an alias cannot be found.
Example .dj-config.json
{
"commands": [
{
"name": "m",
"help": "Does the migration dance",
"execute": "./manage.py makemigrations && ./manage.py migrate",
},
{
"name": "r",
"help": "Runserver",
"execute": "./manage.py runserver",
"long_running": true
}
]
}
Basic arguments and options
dj --help
to see all of the optionsdj --list
to see all of the available custom commandsdj {command_name}
to run a custom command or Django management command (e.g.dj migrate
)dj {command_name} --dry_run
to show what commands would run without actually executing them
How to work on the source
- Clone the repo
- Run the source locally:
poetry run python dj
- Test the source:
poetry run pytest
- Build and install locally:
poetry build && pip3 install --user --upgrade --force-reinstall dist/dj_command-0.1.0-py3-none-any.whl
- Test with
~/.local/bin/dj migrate
- Publish the source to pypi:
poetry publish --build --username USERNAME --password PASSWORD
Acknowledgements
- poetry: please, please, please continue to wrangle the complexity of 1) creating Python projects, and 2) installing dependencies; seriously, it's baffling out there without you
- click: ridiculously full-featured library to help implement CLI programs in Python; it has all the bells and most of the whistles
- attrs: would you like easy classes in Python? yes, please
- delegator.py: dealing with subprocess is a pain, but delegator hides all the ugly cruft behind a nice API
Prior art
This isn't a new idea and there are a few other implementations out there that do similar things. But, uh, I like mine. 😀
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dj-command-0.2.0.tar.gz
(5.2 kB
view hashes)
Built Distribution
Close
Hashes for dj_command-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdcb923040c4d0cf47711fc8dbd2af5f082a6f1659287dc5b9474bed23de97f6 |
|
MD5 | 46b70ece18aefe6c96a9ba126dfe2f3b |
|
BLAKE2b-256 | 0051c4cfe12dbd3367fa24d1d6e330358a97de8e281dc775237d8887a70d15c0 |