From 7e975e8e1d0f2bc58fd427d7cdbee612aad3ba70 Mon Sep 17 00:00:00 2001 From: appflowy Date: Tue, 17 May 2022 16:00:07 +0800 Subject: [PATCH 1/2] chore: optimaze install protoc message --- .../src/code_gen/protobuf_file/mod.rs | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/shared-lib/lib-infra/src/code_gen/protobuf_file/mod.rs b/shared-lib/lib-infra/src/code_gen/protobuf_file/mod.rs index ff1f5fa5f5..a65d4d5bd9 100644 --- a/shared-lib/lib-infra/src/code_gen/protobuf_file/mod.rs +++ b/shared-lib/lib-infra/src/code_gen/protobuf_file/mod.rs @@ -7,6 +7,7 @@ mod proto_info; mod template; use crate::code_gen::util::path_string_with_component; +use itertools::Itertools; use log::info; pub use proto_gen::*; pub use proto_info::*; @@ -132,7 +133,7 @@ fn generate_dart_protobuf_files( } } -fn check_pb_dart_plugin() { +pub fn check_pb_dart_plugin() { if cfg!(target_os = "windows") { //Command::new("cmd") // .arg("/C") @@ -141,15 +142,39 @@ fn check_pb_dart_plugin() { // .expect("failed to execute process"); //panic!("{}", format!("\n❌ The protoc-gen-dart was not installed correctly.")) } else { - let is_success = Command::new("sh") + let exit_result = Command::new("sh") .arg("-c") .arg("command -v protoc-gen-dart") .status() - .expect("failed to execute process") - .success(); + .expect("failed to execute process"); - if !is_success { - panic!("{}", format!("\n❌ The protoc-gen-dart was not installed correctly. \n✅ You can fix that by adding \"{}\" to your shell's config file.(.bashrc, .bash, etc.)", "dart pub global activate protoc_plugin")) + if !exit_result.success() { + let mut msg = "\n❌ Can't find protoc-gen-dart in $PATH:\n".to_string(); + let output = Command::new("sh").arg("-c").arg("echo $PATH").output(); + let paths = String::from_utf8(output.unwrap().stdout) + .unwrap() + .split(":") + .map(|s| s.to_string()) + .collect::>(); + + paths.iter().for_each(|s| msg.push_str(&format!("{}\n", s))); + + match Command::new("sh").arg("-c").arg("which protoc-gen-dart").output() { + Ok(output) => { + msg.push_str(&format!( + "Installed protoc-gen-dart path: {:?}\n", + String::from_utf8(output.stdout).unwrap() + )); + } + Err(_) => {} + } + + msg.push_str(&format!("✅ You can fix that by adding:")); + msg.push_str(&format!("\n\texport PATH=\"$PATH\":\"$HOME/.pub-cache/bin\"\n",)); + msg.push_str(&format!( + "to your shell's config file.(.bashrc, .bash, .profile, .zshrc etc.)" + )); + panic!("{}", msg) } } } From 0d40817cada5387eb07ca925d3a1cf426a0057c0 Mon Sep 17 00:00:00 2001 From: appflowy Date: Tue, 17 May 2022 16:07:36 +0800 Subject: [PATCH 2/2] chore: specify flutter version on CI --- .github/workflows/dart_lint.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dart_lint.yml b/.github/workflows/dart_lint.yml index f8737bfb8a..81460cec1c 100644 --- a/.github/workflows/dart_lint.yml +++ b/.github/workflows/dart_lint.yml @@ -23,6 +23,7 @@ jobs: uses: actions/checkout@v2 - uses: subosito/flutter-action@v1 with: + flutter-version: '2.10.0' channel: "stable" - name: Deps Flutter run: flutter packages pub get