CLI cleanup

This commit is contained in:
Ilya Zlobintsev
2020-11-23 13:32:20 +02:00
parent e308f6ff71
commit e52101a6a2
3 changed files with 59 additions and 34 deletions
+2 -1
View File
@@ -10,4 +10,5 @@ edition = "2018"
daemon = { path = "../daemon" }
structopt = "0.3"
log = "0.4"
env_logger = "0.8"
env_logger = "0.8"
colored = "2"
+55 -32
View File
@@ -1,27 +1,20 @@
use daemon::daemon_connection::DaemonConnection;
use structopt::StructOpt;
use colored::*;
#[derive(StructOpt)]
#[structopt(rename_all = "lower")]
enum Opt {
///Gets realtime GPU information
///Realtime GPU information
Stats {
gpu_id: u32,
gpu_id: Option<u32>,
},
///Get GPU list
Gpus,
///General information about the GPU
Info {
gpu_id: u32,
gpu_id: Option<u32>,
},
StartFanControl {
gpu_id: u32,
},
StopFanControl {
gpu_id: u32,
},
GetFanControl {
gpu_id: u32,
},
Stop,
}
fn main() {
@@ -38,27 +31,57 @@ fn main() {
println!("{:?}", gpus);
},
Opt::Stats { gpu_id } => {
let gpu_stats = d.get_gpu_stats(gpu_id).unwrap();
println!("VRAM: {}/{}", gpu_stats.mem_used, gpu_stats.mem_total);
println!("{:?}", gpu_stats);
let mut gpu_ids: Vec<u32> = Vec::new();
if let Some(gpu_id) = gpu_id {
gpu_ids.push(gpu_id);
}
else {
for (gpu_id, _) in d.get_gpus().unwrap() {
gpu_ids.push(gpu_id);
}
}
for gpu_id in gpu_ids {
print_stats(&d, gpu_id);
}
},
Opt::Info { gpu_id } => {
let gpu_info = d.get_gpu_info(gpu_id).unwrap();
println!("GPU Vendor: {}", gpu_info.gpu_vendor);
println!("GPU Model: {}", gpu_info.card_model);
println!("Driver in use: {}", gpu_info.driver);
print!("VBIOS Version: {}", gpu_info.vbios_version);
//println!("{:?}", gpu_info);
let mut gpu_ids: Vec<u32> = Vec::new();
if let Some(gpu_id) = gpu_id {
gpu_ids.push(gpu_id);
}
else {
for (gpu_id, _) in d.get_gpus().unwrap() {
gpu_ids.push(gpu_id);
}
}
for gpu_id in gpu_ids {
print_info(&d, gpu_id);
}
},
Opt::StartFanControl { gpu_id } => {
println!("{:?}", d.start_fan_control(gpu_id));
},
Opt::StopFanControl { gpu_id } => {
println!("{:?}", d.stop_fan_control(gpu_id));
},
Opt::GetFanControl { gpu_id } => {
println!("{:?}", d.get_fan_control(gpu_id));
},
Opt::Stop => d.shutdown(),
}
}
fn print_info(d: &DaemonConnection, gpu_id: u32) {
let gpu_info = d.get_gpu_info(gpu_id).unwrap();
println!("{} {}", "GPU Model:".blue(), gpu_info.card_model.bold());
println!("{} {}", "GPU Vendor:".blue(), gpu_info.gpu_vendor.bold());
println!("{} {}", "Driver in use:".blue(), gpu_info.driver.bold());
println!("{} {}", "VBIOS Version:".blue(), gpu_info.vbios_version.bold());
println!("{} {}", "VRAM Size:".blue(), gpu_info.vram_size.to_string().bold());
println!("{} {}", "Link Speed:".blue(), gpu_info.link_speed.bold());
}
fn print_stats(d: &DaemonConnection, gpu_id: u32) {
let gpu_stats = d.get_gpu_stats(gpu_id).unwrap();
println!("{} {}/{} MiB", "VRAM Usage:".green(), gpu_stats.mem_used, gpu_stats.mem_total);
println!("{} {}°C", "Temperature:".green(), gpu_stats.gpu_temp);
println!("{} {}/{}RPM", "Fan Speed:".green(), gpu_stats.fan_speed, gpu_stats.max_fan_speed);
println!("{} {}MHz", "GPU Clock:".green(), gpu_stats.gpu_freq);
println!("{} {}V", "GPU Voltage:".green(), gpu_stats.voltage as f64 / 1000.0);
println!("{} {}MHz", "VRAM Clock:".green(), gpu_stats.mem_freq);
println!("{} {}/{}W", "Power Usage:".green(), gpu_stats.power_avg, gpu_stats.power_cap);
}
+2 -1
View File
@@ -2,8 +2,9 @@
cargo build --release
sudo install -Dm755 target/release/daemon /usr/local/bin/lact-daemon
sudo install -Dm755 target/release/gui /usr/local/bin/lact-gui
sudo install -Dm755 target/release/cli /usr/local/bin/lact-cli
sudo install -Dm644 lactd.service /etc/systemd/system/lact.service
sudo mkdir -p /usr/local/share/applications
sudo install -Dm644 lact.desktop /usr/local/share/applications/
sudo systemctl daemon-reload
#sudo systemctl restart lactd
#sudo systemctl restart lactd