diff --git a/scripts/integrations-cli/README.md b/scripts/integrations-cli/README.md new file mode 100644 index 000000000..6de04630b --- /dev/null +++ b/scripts/integrations-cli/README.md @@ -0,0 +1,49 @@ +# Integrations CLI + +## Description + +This is a CLI tool for creating, validating, and maintaining OpenSearch Dashboard Integrations. +The tool has three main functions: + +- `create` a new integration with a specified configuration. +- `check` an integration for validity +- `package` an integration to be upload to an OpenSearch Integrations instance + +## Installation + +The project is managed with [Poetry](https://python-poetry.org/). +After installing Poetry, install dependencies: + +```sh +$ poetry install +Installing dependencies from lock file +``` + +## Usage + +The CLI can be run with: + +```sh +$ poetry run cli +Usage: cli.cmd [OPTIONS] COMMAND [ARGS]... +``` + +If you don't want to prefix everything + +## Development + +For development, there are a few scripts to help: + +```sh +$ poetry run test +... +OK + +$ poetry run format +... +All done! +``` + +## License + +This project, like the rest of the OpenSearch projects, is licensed under the Apache 2.0 License. diff --git a/scripts/integrations-cli/helpers/__init__.py b/scripts/integrations-cli/integrations_cli/helpers/__init__.py similarity index 100% rename from scripts/integrations-cli/helpers/__init__.py rename to scripts/integrations-cli/integrations_cli/helpers/__init__.py diff --git a/scripts/integrations-cli/helpers/catalog.py b/scripts/integrations-cli/integrations_cli/helpers/catalog.py similarity index 100% rename from scripts/integrations-cli/helpers/catalog.py rename to scripts/integrations-cli/integrations_cli/helpers/catalog.py diff --git a/scripts/integrations-cli/helpers/constants.py b/scripts/integrations-cli/integrations_cli/helpers/constants.py similarity index 100% rename from scripts/integrations-cli/helpers/constants.py rename to scripts/integrations-cli/integrations_cli/helpers/constants.py diff --git a/scripts/integrations-cli/helpers/create.py b/scripts/integrations-cli/integrations_cli/helpers/create.py similarity index 100% rename from scripts/integrations-cli/helpers/create.py rename to scripts/integrations-cli/integrations_cli/helpers/create.py diff --git a/scripts/integrations-cli/helpers/validate.py b/scripts/integrations-cli/integrations_cli/helpers/validate.py similarity index 100% rename from scripts/integrations-cli/helpers/validate.py rename to scripts/integrations-cli/integrations_cli/helpers/validate.py diff --git a/scripts/integrations-cli/integrations-cli.py b/scripts/integrations-cli/integrations_cli/main.py similarity index 99% rename from scripts/integrations-cli/integrations-cli.py rename to scripts/integrations-cli/integrations_cli/main.py index aea7f8f3a..e7e6c170e 100644 --- a/scripts/integrations-cli/integrations-cli.py +++ b/scripts/integrations-cli/integrations_cli/main.py @@ -8,7 +8,7 @@ from returns.result import Result from termcolor import colored -import helpers +import integrations_cli.helpers as helpers @click.group() diff --git a/scripts/integrations-cli/pyproject.toml b/scripts/integrations-cli/pyproject.toml index ace8da909..3403f6ad7 100644 --- a/scripts/integrations-cli/pyproject.toml +++ b/scripts/integrations-cli/pyproject.toml @@ -5,6 +5,11 @@ description = "CLI for managing OpenSearch Integrations" authors = ["Simeon Widdis "] license = "Apache-2.0" +[tool.poetry.scripts] +cli = "integrations_cli.main:integrations_cli" +test = "scripts:test" +format = "scripts:format" + [tool.isort] profile = "black" diff --git a/scripts/integrations-cli/scripts.py b/scripts/integrations-cli/scripts.py new file mode 100644 index 000000000..f13d3d394 --- /dev/null +++ b/scripts/integrations-cli/scripts.py @@ -0,0 +1,17 @@ +import subprocess + + +def test(): + """ + Run all unittests. Equivalent to: + `poetry run python -u -m unittest discover` + """ + subprocess.run(["python", "-u", "-m", "unittest", "discover"]) + + +def format(): + """ + Reformat all code. Equivalent to: + `poetry run black .` + """ + subprocess.run(["black", "."]) diff --git a/scripts/integrations-cli/tests/test_validate.py b/scripts/integrations-cli/tests/test_validate.py index de2e7bb6d..c6498a8b8 100644 --- a/scripts/integrations-cli/tests/test_validate.py +++ b/scripts/integrations-cli/tests/test_validate.py @@ -4,9 +4,9 @@ import jsonschema from returns.pipeline import is_successful -import helpers.constants as constants -import helpers.validate as validate -from helpers.catalog import _load_catalog_file +import integrations_cli.helpers.constants as constants +import integrations_cli.helpers.validate as validate +from integrations_cli.helpers.catalog import _load_catalog_file class TestSchemas(unittest.TestCase):