odooflow

Odooflow is a powerful command-line interface (CLI) tool designed to streamline and automate common workflows in Odoo development. It simplifies tasks like project setup, version control, module management, and deployment, making it easier for developers to work efficiently with Odoo environments.

1
0
Python

šŸŒ€ Odooflow CLI

Odooflow CLI is a command-line interface tool designed to streamline the development workflow for Odoo projects. It helps clone Odoo modules (and their dependencies), handles GitLab lookups, and provides options for deep recursive cloning.

šŸš€ Features

  • Clone an Odoo module by Git URL
  • Recursively resolve and clone all dependencies
  • Smart skip of Odoo core modules
  • Branch selection for cloning
  • Helpful and colorful CLI output
  • Built using Typer and Python 3.9+

šŸ“¦ Installation

git clone https://github.com/YOUR_USERNAME/odooflow-cli.git
cd odooflow-cli
pip install .

Or install directly from source for development:

pip install -e .

šŸ› ļø Usage

Once installed, you can use the CLI by running:

odooflow clone --url <GIT_REPO_URL> [--branch <BRANCH>] [--deep]

šŸ”¹ Options:

Flag Description
--url Full HTTP URL of the module repo
--branch (Optional) Git branch to clone from
--deep Recursively clone all dependencies

šŸ” Examples:

Clone a single module:

odooflow clone --url https://gitlab.com/mygroup/my_odoo_module.git

Clone with specific branch:

odooflow clone --url https://gitlab.com/mygroup/my_odoo_module.git --branch 17.0

Clone deeply with dependencies:

odooflow clone --url https://gitlab.com/mygroup/my_odoo_module.git --deep

šŸ“ Project Structure

odooflow-cli/
ā”œā”€ā”€ odooflow/
│   ā”œā”€ā”€ __init__.py
│   ā”œā”€ā”€ config.py
│   ā”œā”€ā”€ utils.py
│   ā”œā”€ā”€ gitlab.py
│   └── clone.py
ā”œā”€ā”€ tests/
ā”œā”€ā”€ README.md
ā”œā”€ā”€ pyproject.toml
└── setup.py

šŸ¤ Contributing

Contributions are welcome! Please open an issue or submit a pull request with any improvements, bug fixes, or new features.

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

šŸ“ License

This project is licensed under the MIT License. See the LICENSE file for details.


šŸ‘Øā€šŸ’» Author

Made with ā¤ļø by Mohammad A. Hamdan