https://github.com/jeeves-sh/jeeves-shell
Pythonic alternative for GNU Make.
https://github.com/jeeves-sh/jeeves-shell
administration boilerplate linting make makefile python shell testing
Last synced: 2 months ago
JSON representation
Pythonic alternative for GNU Make.
- Host: GitHub
- URL: https://github.com/jeeves-sh/jeeves-shell
- Owner: jeeves-sh
- Created: 2021-10-09T09:51:33.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-11-03T14:42:57.000Z (11 months ago)
- Last Synced: 2025-07-10T18:51:22.745Z (3 months ago)
- Topics: administration, boilerplate, linting, make, makefile, python, shell, testing
- Language: Python
- Homepage: https://jeeves.sh
- Size: 3.57 MB
- Stars: 40
- Watchers: 1
- Forks: 2
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Jeeves Shell
[](https://github.com/jeeves-sh/jeeves-shell/actions?query=workflow%3Atest)
[](https://codecov.io/gh/jeeves-sh/jeeves-shell)
[](https://pypi.org/project/jeeves-shell/)
[](https://github.com/wemake-services/wemake-python-styleguide)
A Pythonic replacement for GNU Make, with re-usability and modularity added as a bonus.
Jeeves transforms your shell experience by enabling you to create custom Python-based shell commands to manage and automate your development workflows.
## Features
- **Custom Shell Commands**: Construct commands to build, compile, lint, format, test, deploy, and propel your projects forward.
- **Python-Powered**: Use Python for readable and maintainable workflows.
- **Rich Integrations**: Stylish command output with `rich` and `sh`.
- **Plugin System**: Share your setup across projects.## Quick Start
Install with pip:
pip install 'jeeves-shell[all]'
Or with poetry:
poetry add --group dev --extras=all jeeves-shell
## Example
Create a file named `jeeves.py` in the root of your project.
```python
import rich
import shdef hi():
"""Hello world."""
user_name = sh.whoami()
machine = sh.uname('-a')rich.print(f'Hello [b]{user_name}[/b]!')
rich.print(f'This code is running on: [b]{machine}[/b].')
```And then execute in your shell:
```shell
j hi
```this should print something along the lines of:
```
Hello john-connor!
This code is running on: Cyberdyne T800!
```## Learn More
Read [the tutorial](https://jeeves.sh/jeeves-py/)!
## Credits
This project was generated with [`wemake-python-package`](https://github.com/wemake-services/wemake-python-package).