From 665c204ac2efd4581e897ab3817c58a929e84fc1 Mon Sep 17 00:00:00 2001 From: Emmanuel Quevillon Date: Wed, 1 Oct 2025 15:42:45 +0200 Subject: [PATCH] :art: feat: Add --version option This changes add a option to display version of the tool directly. It also adds a missing dependency package (mypy_boto3_ec2) It updates README.md for developers. Signed-off-by: Emmanuel Quevillon --- README.md | 23 +++++++++++++++++++++++ osc_bsu_backup/cli.py | 14 +++++++++++++- setup.py | 3 ++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6a97f0b..6d5f54d 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,29 @@ make develop make unit ``` +## Development + +### Editable Mode + +Install the CLI in editable mode with development dependencies + +```bash +# Clone the repository +git clone https://github.com/outscale/osc-bsu-backup.git +cd osc-bsu-backup + +# Create and activate a virtual environment +python -m venv venv +source venv/bin/activate + +# CLI in editable mode +pip install -e ".[dev]" +or +python3 setup.py develop +``` + +Changes in the `osc_bsu_backup/` directory will be immediately reflected without reinstalling. + ```bash #you must have an account on the region eu-west-2 from Outscale #~/.aws/credentials diff --git a/osc_bsu_backup/cli.py b/osc_bsu_backup/cli.py index 6071e2e..068bbdd 100644 --- a/osc_bsu_backup/cli.py +++ b/osc_bsu_backup/cli.py @@ -25,6 +25,7 @@ class Args: profile: Optional[str] client_cert: Optional[str] debug: bool + version: bool def backup(args: Args) -> None: @@ -53,7 +54,6 @@ def backup(args: Args) -> None: def main() -> None: - logger.info("osc_bsu_backup: %s", __version__) parser = argparse.ArgumentParser(description=f"osc-bsu-backup: {__version__}") parser.add_argument( @@ -135,8 +135,20 @@ def main() -> None: parser.add_argument( "--debug", dest="debug", action="store_true", default=False, help="enable debug" ) + parser.add_argument( + "--version", + dest="version", + action="store_true", + default=False, + help="Show script version and exit" + ) args = Args(**vars(parser.parse_args())) + if args.version: + print(f"osc-bsu-backup version {__version__}") + exit(0) + + logger.info("osc_bsu_backup: %s", __version__) if args.instances_tags: for tag in args.instances_tags: if len(tag.split(":")) != 2: diff --git a/setup.py b/setup.py index 184a722..274e886 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,7 @@ 'console_scripts': ['osc-bsu-backup = osc_bsu_backup.cli:main'] }, install_requires=[ - 'boto3' + 'boto3', + 'mypy_boto3_ec2' ] )