Metadata-Version: 2.1
Name: novara
Version: 0.1.10
Summary: 
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: PyYAML (>=6.0.2,<7.0.0)
Requires-Dist: click (>=8.1.7,<9.0.0)
Requires-Dist: docker (>=7.1.0,<8.0.0)
Requires-Dist: python-box (>=7.2.0,<8.0.0)
Requires-Dist: questionary (>=2.0.1,<3.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=13.8.0,<14.0.0)
Requires-Dist: rich-click (>=1.8.3,<2.0.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Description-Content-Type: text/markdown

# Novara cli

This is the cli for the novara api

## Commands

### configure

This command configures the cli to use a server and fetches some configs from it

### forward

While running, this command creates a ssh tunnel to access the docker on the remote

### generate

This command will regenerate the Dockerfile from the novara.toml. Additionally the command can add dependencies to the toml file.

### init

This command initializes a new directory with a template already configured for the given service

### run

This command can either run the exploit locally or upload it to remote to execute it.

### status

This command will retreive the info for a container or optionally all containers including their current health

## Installation

```sh
poetry build -f wheel
pip install dist/*.whl
```

The cli can then be access by running `novara [OPTIONS] command` in your terminal.

# Development

To install the cli for development use, use

```sh
poetry install
poetry shell
```

- configs.py manages all the configurations for the cli.
- main.py manages all available commands.
- all commands are implemented in a file name command_name.py in commands/
- utils.py contains some usefull helpers like a Logger class

