forked from confidential-containers/guest-components
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.rs
55 lines (46 loc) · 1.6 KB
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (c) 2022 Alibaba Cloud
//
// SPDX-License-Identifier: Apache-2.0
//
fn main() -> Result<(), Box<dyn std::error::Error>> {
#[cfg(feature = "tonic-build")]
tonic_build::compile_protos("./protos/getresource.proto").expect("tonic build");
#[cfg(feature = "ttrpc-codegen")]
{
use std::fs::File;
use std::io::{Read, Write};
fn replace_text_in_file(
file_name: &str,
from: &str,
to: &str,
) -> Result<(), std::io::Error> {
let mut src = File::open(file_name)?;
let mut contents = String::new();
src.read_to_string(&mut contents).unwrap();
drop(src);
let new_contents = contents.replace(from, to);
let mut dst = File::create(file_name)?;
dst.write_all(new_contents.as_bytes())?;
Ok(())
}
ttrpc_codegen::Codegen::new()
.out_dir("./src/resource/kbs/ttrpc_proto")
.input("./protos/getresource.proto")
.include("./protos")
.rust_protobuf()
.customize(ttrpc_codegen::Customize {
async_all: true,
..Default::default()
})
.rust_protobuf_customize(ttrpc_codegen::ProtobufCustomize::default().gen_mod_rs(false))
.run()
.expect("ttrpc build");
// Fix clippy warnings of code generated from ttrpc_codegen
replace_text_in_file(
"src/resource/kbs/ttrpc_proto/getresource_ttrpc.rs",
"#![allow(box_pointers)]\n",
"",
)?;
}
Ok(())
}