cycles-quartz/crates/cli/README.md
Daniel Gushchyan 14a6913632
refactor: refactor repo as standard rust monorepo (#222)
Co-authored-by: hu55a1n1 <sufialhussaini@gmail.com>
2024-09-30 23:33:22 +04:00

77 lines
1.9 KiB
Markdown

# quartz CLI
A CLI tool to manage Quartz applications. The `quartz` CLI tool is designed to streamline the development and deployment
process of Quartz applications.
It provides helpful information about each command and its options. To get a list of all available subcommands and their
descriptions, use the `--help` flag:
```shell
$ quartz --help
Quartz 0.1.0
A CLI tool to manage Quartz applications
USAGE:
quartz [SUBCOMMAND]
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
init Create base Quartz app directory from template
build Build the contract and enclave binaries
enclave Enclave subcommads to configure Gramine, build, sign, and start the enclave binary
contract Contract subcommads to build, deploy the WASM binary to the blockchain and call instantiate
handshake Run the handshake between the contract and enclave
```
## Installation
To install Quartz, ensure you have Rust and Cargo installed. Then run:
```shell
cargo install quartz
```
## Usage of subcommands
### Init
Initialize a new Quartz app directory structure with optional name and path arguments.
#### Usage
```shell
$ quartz init --help
quartz-init
Create base Quartz app directory from template
USAGE:
quartz init [OPTIONS]
OPTIONS:
-n, --name <NAME> Set the name of the Quartz app [default: <name of parent directory>]
-p, --path <PATH> Set the path where the Quartz app will be created [default: .]
-h, --help Print help information
```
#### Example
```shell
quartz init --name <app_name> --path <path>
```
This command will create the following directory structure at the specified path (or the current directory if no path is
provided):
```shell
$ tree /<path>/<app-name> -L 1
apps/transfers/
├── contracts/
├── enclave/
├── frontend/
└── README.md
```