mirror of
https://github.com/ankitects/anki.git
synced 2025-09-22 07:52:24 -04:00
Don't require DESCRIPTORS_BIN in an external workspace
Consumers may not require it
This commit is contained in:
parent
ffac5e0d14
commit
02a1c891a6
2 changed files with 11 additions and 10 deletions
|
@ -9,13 +9,12 @@ pub mod utils;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use anyhow::Context;
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let descriptors_path = PathBuf::from(env::var("DESCRIPTORS_BIN").context("DESCRIPTORS_BIN")?);
|
let descriptors_path = env::var("DESCRIPTORS_BIN").ok().map(PathBuf::from);
|
||||||
|
|
||||||
let pool = rust::write_backend_proto_rs(&descriptors_path)?;
|
let pool = rust::write_backend_proto_rs(descriptors_path)?;
|
||||||
python::write_python_interface(&pool)?;
|
python::write_python_interface(&pool)?;
|
||||||
ts::write_ts_interface(&pool)?;
|
ts::write_ts_interface(&pool)?;
|
||||||
|
|
||||||
|
|
|
@ -14,16 +14,11 @@ use anyhow::Result;
|
||||||
use prost_build::ServiceGenerator;
|
use prost_build::ServiceGenerator;
|
||||||
use prost_reflect::DescriptorPool;
|
use prost_reflect::DescriptorPool;
|
||||||
|
|
||||||
pub fn write_backend_proto_rs(descriptors_path: &Path) -> Result<DescriptorPool> {
|
pub fn write_backend_proto_rs(descriptors_path: Option<PathBuf>) -> Result<DescriptorPool> {
|
||||||
set_protoc_path();
|
set_protoc_path();
|
||||||
let proto_dir = PathBuf::from("../../proto");
|
let proto_dir = PathBuf::from("../../proto");
|
||||||
let paths = gather_proto_paths(&proto_dir)?;
|
let paths = gather_proto_paths(&proto_dir)?;
|
||||||
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
|
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
|
||||||
create_dir_all(
|
|
||||||
descriptors_path
|
|
||||||
.parent()
|
|
||||||
.context("missing parent of descriptor")?,
|
|
||||||
)?;
|
|
||||||
let tmp_descriptors = out_dir.join("descriptors.tmp");
|
let tmp_descriptors = out_dir.join("descriptors.tmp");
|
||||||
prost_build::Config::new()
|
prost_build::Config::new()
|
||||||
.out_dir(&out_dir)
|
.out_dir(&out_dir)
|
||||||
|
@ -55,7 +50,14 @@ pub fn write_backend_proto_rs(descriptors_path: &Path) -> Result<DescriptorPool>
|
||||||
.context("prost build")?;
|
.context("prost build")?;
|
||||||
|
|
||||||
let descriptors = read_file(&tmp_descriptors)?;
|
let descriptors = read_file(&tmp_descriptors)?;
|
||||||
write_file_if_changed(descriptors_path, &descriptors)?;
|
if let Some(descriptors_path) = descriptors_path {
|
||||||
|
create_dir_all(
|
||||||
|
descriptors_path
|
||||||
|
.parent()
|
||||||
|
.context("missing parent of descriptor")?,
|
||||||
|
)?;
|
||||||
|
write_file_if_changed(descriptors_path, &descriptors)?;
|
||||||
|
}
|
||||||
write_service_index(&out_dir, descriptors)
|
write_service_index(&out_dir, descriptors)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue