@@ -1,12 +1,6 @@
|
||||
//! `tonic-build` compiles `proto` files via `prost` and generates service stubs
|
||||
//! and proto definitiones for use with `tonic`.
|
||||
//!
|
||||
//! # Features
|
||||
//!
|
||||
//! - `rustfmt`: This feature enables the use of `rustfmt` to format the output code
|
||||
//! this makes the code readable and the error messages nice. This requires that `rustfmt`
|
||||
//! is installed. This is enabled by default.
|
||||
//!
|
||||
//! # Required dependencies
|
||||
//!
|
||||
//! ```toml
|
||||
@@ -85,13 +79,6 @@ mod prost;
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "prost")))]
|
||||
pub use prost::{compile_protos, configure, Builder};
|
||||
|
||||
#[cfg(feature = "rustfmt")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "rustfmt")))]
|
||||
use std::io::{self, Write};
|
||||
#[cfg(feature = "rustfmt")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "rustfmt")))]
|
||||
use std::process::{exit, Command};
|
||||
|
||||
/// Service code generation for client
|
||||
pub mod client;
|
||||
/// Service code generation for Server
|
||||
@@ -217,42 +204,6 @@ fn generate_attributes<'a>(
|
||||
.collect::<Vec<_>>()
|
||||
}
|
||||
|
||||
/// Format files under the out_dir with rustfmt
|
||||
#[cfg(feature = "rustfmt")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "rustfmt")))]
|
||||
pub fn fmt(out_dir: &str) {
|
||||
let dir = std::fs::read_dir(out_dir).unwrap();
|
||||
|
||||
for entry in dir {
|
||||
let file = entry.unwrap().file_name().into_string().unwrap();
|
||||
if !file.ends_with(".rs") {
|
||||
continue;
|
||||
}
|
||||
let result =
|
||||
Command::new(std::env::var("RUSTFMT").unwrap_or_else(|_| "rustfmt".to_owned()))
|
||||
.arg("--emit")
|
||||
.arg("files")
|
||||
.arg("--edition")
|
||||
.arg("2018")
|
||||
.arg(format!("{}/{}", out_dir, file))
|
||||
.output();
|
||||
|
||||
match result {
|
||||
Err(e) => {
|
||||
eprintln!("error running rustfmt: {:?}", e);
|
||||
exit(1)
|
||||
}
|
||||
Ok(output) => {
|
||||
if !output.status.success() {
|
||||
io::stdout().write_all(&output.stdout).unwrap();
|
||||
io::stderr().write_all(&output.stderr).unwrap();
|
||||
exit(output.status.code().unwrap_or(1))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generate a singular line of a doc comment
|
||||
fn generate_doc_comment<S: AsRef<str>>(comment: S) -> TokenStream {
|
||||
let mut doc_stream = TokenStream::new();
|
||||
|
||||
Reference in New Issue
Block a user