build_benchmark_jsons.rs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright 2019-2022 Tauri Programme within The Commons Conservancy
  2. // SPDX-License-Identifier: Apache-2.0
  3. // SPDX-License-Identifier: MIT
  4. use std::{fs::File, io::BufReader};
  5. mod utils;
  6. fn main() {
  7. let tauri_data = &utils::tauri_root_path()
  8. .join("gh-pages")
  9. .join("tauri-data.json");
  10. let tauri_recent = &utils::tauri_root_path()
  11. .join("gh-pages")
  12. .join("tauri-recent.json");
  13. // current data
  14. let current_data_buffer = BufReader::new(
  15. File::open(&utils::target_dir().join("bench.json")).expect("Unable to read current data file"),
  16. );
  17. let current_data: utils::BenchResult =
  18. serde_json::from_reader(current_data_buffer).expect("Unable to read current data buffer");
  19. // all data's
  20. let all_data_buffer =
  21. BufReader::new(File::open(tauri_data).expect("Unable to read all data file"));
  22. let mut all_data: Vec<utils::BenchResult> =
  23. serde_json::from_reader(all_data_buffer).expect("Unable to read all data buffer");
  24. // add current data to all data
  25. all_data.push(current_data);
  26. // use only latest 20 elements from all data
  27. let recent: Vec<utils::BenchResult> = if all_data.len() > 20 {
  28. all_data[all_data.len() - 20..].to_vec()
  29. } else {
  30. all_data.clone()
  31. };
  32. // write json's
  33. utils::write_json(
  34. tauri_data
  35. .to_str()
  36. .expect("Something wrong with tauri_data"),
  37. &serde_json::to_value(&all_data).expect("Unable to build final json (all)"),
  38. )
  39. .unwrap_or_else(|_| panic!("Unable to write {:?}", tauri_data));
  40. utils::write_json(
  41. tauri_recent
  42. .to_str()
  43. .expect("Something wrong with tauri_recent"),
  44. &serde_json::to_value(&recent).expect("Unable to build final json (recent)"),
  45. )
  46. .unwrap_or_else(|_| panic!("Unable to write {:?}", tauri_recent));
  47. }