Move the crate generator to cargo-progenitor (#476)
Co-authored-by: Adam Leventhal <ahl@oxide.computer>
This commit is contained in:
parent
cbc5cd76da
commit
787cc14b64
|
@ -200,6 +200,23 @@ dependencies = [
|
|||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cargo-progenitor"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"built",
|
||||
"clap",
|
||||
"openapiv3",
|
||||
"progenitor",
|
||||
"progenitor-client",
|
||||
"progenitor-impl",
|
||||
"project-root",
|
||||
"rustfmt-wrapper",
|
||||
"serde_json",
|
||||
"serde_yaml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.72"
|
||||
|
@ -1271,26 +1288,19 @@ dependencies = [
|
|||
name = "progenitor"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
"built",
|
||||
"chrono",
|
||||
"clap",
|
||||
"futures",
|
||||
"openapiv3",
|
||||
"percent-encoding",
|
||||
"progenitor-client",
|
||||
"progenitor-impl",
|
||||
"progenitor-macro",
|
||||
"project-root",
|
||||
"rand",
|
||||
"regress",
|
||||
"reqwest",
|
||||
"rustfmt-wrapper",
|
||||
"schemars",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml",
|
||||
"uuid",
|
||||
]
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[workspace]
|
||||
members = [
|
||||
"cargo-progenitor",
|
||||
"example-build",
|
||||
"example-macro",
|
||||
"example-wasm",
|
||||
|
|
12
README.md
12
README.md
|
@ -150,7 +150,7 @@ however, the most manual way to use Progenitor.
|
|||
Usage:
|
||||
|
||||
```
|
||||
progenitor
|
||||
cargo progenitor
|
||||
|
||||
Options:
|
||||
-i INPUT OpenAPI definition document (JSON or YAML)
|
||||
|
@ -161,7 +161,15 @@ Options:
|
|||
|
||||
For example:
|
||||
|
||||
`cargo run --bin progenitor -- -i sample_openapi/keeper.json -o keeper -n keeper -v 0.1.0`
|
||||
```
|
||||
cargo install cargo-progenitor
|
||||
cargo progenitor -i sample_openapi/keeper.json -o keeper -n keeper -v 0.1.0
|
||||
```
|
||||
|
||||
... or within the repo:
|
||||
```
|
||||
cargo run --bin cargo-progenitor -- progenitor -i sample_openapi/keeper.json -o keeper -n keeper -v 0.1.0
|
||||
```
|
||||
|
||||
This will produce a package in the specified directory.
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
[package]
|
||||
name = "cargo-progenitor"
|
||||
version = "0.3.0"
|
||||
edition = "2021"
|
||||
license = "MPL-2.0"
|
||||
description = "A cargo command to generate a Rust client SDK from OpenAPI"
|
||||
repository = "https://github.com/oxidecomputer/progenitor.git"
|
||||
readme = "../README.md"
|
||||
keywords = ["openapi", "openapiv3", "sdk", "generator"]
|
||||
categories = ["api-bindings", "development-tools::cargo-plugins"]
|
||||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
progenitor = { version = "0.3.0", path = "../progenitor" }
|
||||
progenitor-client = { version = "0.3.0", path = "../progenitor-client" }
|
||||
progenitor-impl = { version = "0.3.0", path = "../progenitor-impl" }
|
||||
anyhow = "1.0"
|
||||
clap = { version = "4.2.7", features = ["derive"] }
|
||||
openapiv3 = "1.0.2"
|
||||
rustfmt-wrapper = "0.2.0"
|
||||
serde_json = "1.0"
|
||||
serde_yaml = "0.9"
|
||||
|
||||
[build-dependencies]
|
||||
built = { version = "0.6", features = ["git2"] }
|
||||
project-root = "0.2"
|
|
@ -23,6 +23,13 @@ fn release_is_unstable() -> bool {
|
|||
!built_info::PKG_VERSION_PRE.is_empty() || built_info::GIT_VERSION.is_some()
|
||||
}
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(name = "cargo")]
|
||||
#[command(bin_name = "cargo")]
|
||||
enum CargoCli {
|
||||
Progenitor(Args),
|
||||
}
|
||||
|
||||
#[derive(Parser)]
|
||||
struct Args {
|
||||
/// OpenAPI definition document (JSON or YAML)
|
||||
|
@ -111,7 +118,7 @@ where
|
|||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let args = Args::parse();
|
||||
let CargoCli::Progenitor(args) = CargoCli::parse();
|
||||
let api = load_api(&args.input)?;
|
||||
|
||||
let mut builder = Generator::new(
|
|
@ -8,23 +8,12 @@ repository = "https://github.com/oxidecomputer/progenitor.git"
|
|||
readme = "../README.md"
|
||||
keywords = ["openapi", "openapiv3", "sdk", "generator", "proc_macro"]
|
||||
categories = ["api-bindings", "compilers"]
|
||||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
progenitor-client = { version = "0.3.0", path = "../progenitor-client" }
|
||||
progenitor-impl = { version = "0.3.0", path = "../progenitor-impl" }
|
||||
progenitor-macro = { version = "0.3.0", path = "../progenitor-macro" }
|
||||
anyhow = "1.0"
|
||||
openapiv3 = "1.0.0"
|
||||
rustfmt-wrapper = "0.2.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
serde_yaml = "0.9"
|
||||
clap = { version = "4.2.7", features = ["derive"] }
|
||||
|
||||
[build-dependencies]
|
||||
built = { version = "0.6", features = ["git2"] }
|
||||
project-root = "0.2"
|
||||
|
||||
[dev-dependencies]
|
||||
base64 = "0.21"
|
||||
|
@ -35,4 +24,5 @@ rand = "0.8"
|
|||
regress = "0.6.0"
|
||||
reqwest = { version = "0.11.17", features = ["json", "stream"] }
|
||||
schemars = { version = "0.8.12", features = ["uuid1"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
uuid = { version = "1.3", features = ["serde", "v4"] }
|
||||
|
|
Loading…
Reference in New Issue