build_benchmark_jsons.rs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright 2019-2021 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 alls data
  25. all_data.push(current_data);
  26. // use only latest 20 elements from alls data
  27. let recent: Vec<utils::BenchResult>;
  28. if all_data.len() > 20 {
  29. recent = all_data[all_data.len() - 20..].to_vec();
  30. } else {
  31. recent = all_data.clone();
  32. }
  33. // write json's
  34. utils::write_json(
  35. tauri_data.to_str().expect("Something wrong with tauri_data"),
  36. &serde_json::to_value(&all_data).expect("Unable to build final json (alls)"),
  37. )
  38. .expect(format!("Unable to write {:?}", tauri_data).as_str());
  39. utils::write_json(
  40. tauri_recent
  41. .to_str()
  42. .expect("Something wrong with tauri_recent"),
  43. &serde_json::to_value(&recent).expect("Unable to build final json (recent)"),
  44. )
  45. .expect(format!("Unable to write {:?}", tauri_recent).as_str());
  46. }