2021-07-05 15:17:12 +00:00
|
|
|
mod config;
|
2021-08-26 02:19:50 +00:00
|
|
|
|
2021-07-04 15:31:33 +00:00
|
|
|
mod util;
|
|
|
|
|
|
|
|
use clap::{App, Arg};
|
|
|
|
|
|
|
|
fn main() {
|
2021-07-05 15:17:12 +00:00
|
|
|
std::env::set_var("RUST_LOG", "Info");
|
2021-07-04 15:31:33 +00:00
|
|
|
env_logger::init();
|
|
|
|
|
|
|
|
let matches = app().get_matches();
|
|
|
|
|
|
|
|
if let Some(ref matches) = matches.subcommand_matches("pb-gen") {
|
|
|
|
let rust_source = matches.value_of("rust_source").unwrap();
|
2021-07-05 07:33:39 +00:00
|
|
|
let derive_meta = matches.value_of("derive_meta").unwrap();
|
2021-07-06 01:08:24 +00:00
|
|
|
let flutter_package_lib = matches.value_of("flutter_package_lib").unwrap();
|
2021-07-04 15:31:33 +00:00
|
|
|
|
2021-07-05 07:33:39 +00:00
|
|
|
proto::ProtoGenBuilder::new()
|
2021-07-04 15:31:33 +00:00
|
|
|
.set_rust_source_dir(rust_source)
|
2021-07-05 07:33:39 +00:00
|
|
|
.set_derive_meta_dir(derive_meta)
|
2021-07-06 01:08:24 +00:00
|
|
|
.set_flutter_package_lib(flutter_package_lib)
|
2021-07-05 07:33:39 +00:00
|
|
|
.build()
|
2021-07-04 15:31:33 +00:00
|
|
|
.gen();
|
|
|
|
}
|
2021-07-07 06:14:37 +00:00
|
|
|
|
|
|
|
if let Some(ref matches) = matches.subcommand_matches("dart-event") {
|
|
|
|
let rust_source = matches.value_of("rust_source").unwrap().to_string();
|
|
|
|
let output_dir = matches.value_of("output").unwrap().to_string();
|
|
|
|
|
|
|
|
let code_gen = dart_event::DartEventCodeGen {
|
|
|
|
rust_source,
|
|
|
|
output_dir,
|
|
|
|
};
|
|
|
|
code_gen.gen();
|
|
|
|
}
|
2021-07-04 15:31:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn app<'a, 'b>() -> App<'a, 'b> {
|
|
|
|
let app = App::new("flowy-tool")
|
|
|
|
.version("0.1")
|
|
|
|
.author("nathan")
|
|
|
|
.about("flowy tool")
|
|
|
|
.subcommand(
|
|
|
|
App::new("pb-gen")
|
|
|
|
.about("Generate proto file from rust code")
|
|
|
|
.arg(
|
|
|
|
Arg::with_name("rust_source")
|
|
|
|
.long("rust_source")
|
|
|
|
.value_name("DIRECTORY")
|
2021-07-05 07:33:39 +00:00
|
|
|
.help("Directory of the cargo workspace"),
|
2021-07-04 15:31:33 +00:00
|
|
|
)
|
|
|
|
.arg(
|
2021-07-05 07:33:39 +00:00
|
|
|
Arg::with_name("derive_meta")
|
|
|
|
.long("derive_meta")
|
2021-07-04 15:31:33 +00:00
|
|
|
.value_name("PATH")
|
|
|
|
.help("Caching information used by flowy-derive"),
|
|
|
|
)
|
|
|
|
.arg(
|
2021-07-06 01:08:24 +00:00
|
|
|
Arg::with_name("flutter_package_lib")
|
|
|
|
.long("flutter_package_lib")
|
2021-07-04 15:31:33 +00:00
|
|
|
.value_name("DIRECTORY"),
|
|
|
|
),
|
2021-07-07 06:14:37 +00:00
|
|
|
)
|
|
|
|
.subcommand(
|
|
|
|
App::new("dart-event")
|
|
|
|
.about("Generate the codes that sending events from rust ast")
|
|
|
|
.arg(
|
|
|
|
Arg::with_name("rust_source")
|
|
|
|
.long("rust_source")
|
|
|
|
.value_name("DIRECTORY")
|
|
|
|
.help("Directory of the cargo workspace"),
|
|
|
|
)
|
|
|
|
.arg(
|
|
|
|
Arg::with_name("output")
|
|
|
|
.long("output")
|
|
|
|
.value_name("DIRECTORY"),
|
|
|
|
),
|
2021-07-04 15:31:33 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
app
|
|
|
|
}
|