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",
|
"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]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.72"
|
version = "1.0.72"
|
||||||
|
@ -1271,26 +1288,19 @@ dependencies = [
|
||||||
name = "progenitor"
|
name = "progenitor"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
|
||||||
"base64",
|
"base64",
|
||||||
"built",
|
|
||||||
"chrono",
|
"chrono",
|
||||||
"clap",
|
|
||||||
"futures",
|
"futures",
|
||||||
"openapiv3",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"progenitor-client",
|
"progenitor-client",
|
||||||
"progenitor-impl",
|
"progenitor-impl",
|
||||||
"progenitor-macro",
|
"progenitor-macro",
|
||||||
"project-root",
|
|
||||||
"rand",
|
"rand",
|
||||||
"regress",
|
"regress",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rustfmt-wrapper",
|
|
||||||
"schemars",
|
"schemars",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_yaml",
|
|
||||||
"uuid",
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
|
"cargo-progenitor",
|
||||||
"example-build",
|
"example-build",
|
||||||
"example-macro",
|
"example-macro",
|
||||||
"example-wasm",
|
"example-wasm",
|
||||||
|
|
12
README.md
12
README.md
|
@ -150,7 +150,7 @@ however, the most manual way to use Progenitor.
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
```
|
```
|
||||||
progenitor
|
cargo progenitor
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-i INPUT OpenAPI definition document (JSON or YAML)
|
-i INPUT OpenAPI definition document (JSON or YAML)
|
||||||
|
@ -161,7 +161,15 @@ Options:
|
||||||
|
|
||||||
For example:
|
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.
|
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()
|
!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)]
|
#[derive(Parser)]
|
||||||
struct Args {
|
struct Args {
|
||||||
/// OpenAPI definition document (JSON or YAML)
|
/// OpenAPI definition document (JSON or YAML)
|
||||||
|
@ -111,7 +118,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let args = Args::parse();
|
let CargoCli::Progenitor(args) = CargoCli::parse();
|
||||||
let api = load_api(&args.input)?;
|
let api = load_api(&args.input)?;
|
||||||
|
|
||||||
let mut builder = Generator::new(
|
let mut builder = Generator::new(
|
|
@ -8,23 +8,12 @@ repository = "https://github.com/oxidecomputer/progenitor.git"
|
||||||
readme = "../README.md"
|
readme = "../README.md"
|
||||||
keywords = ["openapi", "openapiv3", "sdk", "generator", "proc_macro"]
|
keywords = ["openapi", "openapiv3", "sdk", "generator", "proc_macro"]
|
||||||
categories = ["api-bindings", "compilers"]
|
categories = ["api-bindings", "compilers"]
|
||||||
build = "build.rs"
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
progenitor-client = { version = "0.3.0", path = "../progenitor-client" }
|
progenitor-client = { version = "0.3.0", path = "../progenitor-client" }
|
||||||
progenitor-impl = { version = "0.3.0", path = "../progenitor-impl" }
|
progenitor-impl = { version = "0.3.0", path = "../progenitor-impl" }
|
||||||
progenitor-macro = { version = "0.3.0", path = "../progenitor-macro" }
|
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_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]
|
[dev-dependencies]
|
||||||
base64 = "0.21"
|
base64 = "0.21"
|
||||||
|
@ -35,4 +24,5 @@ rand = "0.8"
|
||||||
regress = "0.6.0"
|
regress = "0.6.0"
|
||||||
reqwest = { version = "0.11.17", features = ["json", "stream"] }
|
reqwest = { version = "0.11.17", features = ["json", "stream"] }
|
||||||
schemars = { version = "0.8.12", features = ["uuid1"] }
|
schemars = { version = "0.8.12", features = ["uuid1"] }
|
||||||
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
uuid = { version = "1.3", features = ["serde", "v4"] }
|
uuid = { version = "1.3", features = ["serde", "v4"] }
|
||||||
|
|
Loading…
Reference in New Issue