mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2026-08-19 01:14:43 -05:00
CLI cleanup
This commit is contained in:
+2
-1
@@ -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
@@ -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,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
|
||||
|
||||
Reference in New Issue
Block a user