From 242a36a61cc2797a07cdef04b05a5874a1268a58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Tue, 2 Apr 2024 15:46:02 +0800 Subject: [PATCH] =?UTF-8?q?enhance(tools):=E5=A2=9E=E5=8A=A0=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=AF=BC=E5=87=BApower.conf=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cert_tools/src/power_equal.rs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/cert_tools/src/power_equal.rs b/cert_tools/src/power_equal.rs index 82c7579..3c17f6f 100644 --- a/cert_tools/src/power_equal.rs +++ b/cert_tools/src/power_equal.rs @@ -1,4 +1,8 @@ -use std::path::PathBuf; +use std::{ + fs::File, + io::{BufWriter, Write}, + path::PathBuf, +}; use clap::Args; @@ -6,11 +10,29 @@ use clap::Args; pub struct PowerEqualResultOption { #[arg(help = "Certificate file")] key_file: PathBuf, + #[arg(short, long, default_value = "false", help = "Export to power.conf")] + export: bool, } pub fn calculate_equal_result(options: PowerEqualResultOption) { let cert = cert_lib::load_certificate(options.key_file).expect("load certificate failed"); let result = cert_lib::calculate_power_euqal_result(cert).expect("calculate equal result failed"); - println!("{}", result); + if options.export { + let mut power_conf_path = PathBuf::new(); + power_conf_path.push("."); + power_conf_path.push("power.conf"); + let power_conf_file = File::create(power_conf_path).expect("create power.conf failed"); + let mut writer = BufWriter::new(power_conf_file); + writer + .write("[Args]\n\n[Result]\n".as_bytes()) + .expect("write power.conf failed"); + writer + .write(result.as_bytes()) + .expect("write power.conf failed"); + writer.flush().expect("write power.conf failed"); + println!("Export to power.conf completed."); + } else { + println!("{}", result); + } }