rp-cli 0.0.4

rp-cli is a cli of The Rust Playground.
Documentation
# rp-cli

[![CICD](https://github.com/naoto0822/rp-cli/actions/workflows/cicd.yml/badge.svg)](https://github.com/naoto0822/rp-cli/actions/workflows/cicd.yml)
![License](https://img.shields.io/crates/l/rp-cli)
![Latest Version](https://img.shields.io/crates/v/rp-cli)

rp-cli is a cli of The Rust Playground.

![rp-cli-readme-gif](https://user-images.githubusercontent.com/1576894/160152674-e2f7df90-e77e-4d0f-8ce8-fc2adfbf06e4.gif)

## Installation

### From Source

```bash
$ cargo install rp-cli
```

### From Binaries

The [release page](https://github.com/naoto0822/rp-cli/releases) includes precompiled binaries.

## Usage

### Run

```bash
$ rp run ./examples/run.rs
```

### Format

```bash
$ rp fmt ./examples/run.rs
```

### Share

rp output "Permalink to the playground", "Direct link to the gist".

```bash
$ rp share ./examples/run.rs
```

### Download

rp can handle gist_id or rust playground url.

```bash
$ rp download 234b1b3dd6bf3c13ec78ea86db21e2cd
or
$ rp download https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=234b1b3dd6bf3c13ec78ea86db21e2cd
```

## Test

```
$ make test
```

## Development Run

```
$ cargo run run examples/main.rs
```

## Release

1. Update Cargo.toml

```diff
- version = "0.0.A"
+ version = "0.0.B"
```

2. Update Cargo.lock

```
$ make test
```

3. Commit and Tag and Push

```
$ git add . && git commit -m "Version 0.0.B" && git push origin main
$ git tag v0.0.B
$ git push origin v0.0.B
```

## Dependencies

- [clap-rs/clap](https://github.com/clap-rs/clap)
- [serde-rs/serde](https://github.com/serde-rs/serde)
- [serde-rs/json](https://github.com/serde-rs/json)
- [seanmonstar/reqwest](https://github.com/seanmonstar/reqwest)
- [servo/rust-url](https://github.com/servo/rust-url)

## TODO

- [ ] output file (fmt, download)
- [ ] output JSON format
- [ ] more test code...
- [ ] declear custom error type

## Blog

「rp-cli: Rust Playground CLI」
https://naoto0822.medium.com/rp-cli-rust-playground-cli-10ba1666ae32

## License

Licensed under either of

 * Apache License, Version 2.0
   ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license
   ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.