mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 13:11:31 +00:00
* feat(power-management-core): add core power management control messages for kratad Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): expose xen hypercall client publicly Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): add indexmap to kratart crate dependencies Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): implement power management core in kratart Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): bubble up runtime context in daemon/control service Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): expose performance/efficiency core data in protobuf Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): fix up some protobuf message names Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): fix up performance core heuristic Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): implement GetHostCpuTopology RPC Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): hackfix to get sysctls working with tokio Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): borrow the PowerManagementContext when calling functions belonging to it Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): remove GetHostPowerManagementPolicy RPC for now Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): implement SetHostPowerManagementPolicy RPC Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): add cpu-topology command Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * feat(power-management-core): appease format checking Signed-off-by: Ariadne Conill <ariadne@ariadne.space> * fix(runtime): cpu topology corrections --------- Signed-off-by: Ariadne Conill <ariadne@ariadne.space> Co-authored-by: Alex Zenla <alex@edera.dev>
40 lines
1013 B
Rust
40 lines
1013 B
Rust
use std::{
|
|
net::{SocketAddr, TcpStream},
|
|
str::FromStr,
|
|
sync::{atomic::AtomicBool, Arc},
|
|
};
|
|
|
|
use anyhow::Result;
|
|
use clap::Parser;
|
|
use env_logger::fmt::Target;
|
|
use log::LevelFilter;
|
|
|
|
use kratad::command::DaemonCommand;
|
|
|
|
#[tokio::main(flavor = "multi_thread", worker_threads = 10)]
|
|
async fn main() -> Result<()> {
|
|
let mut builder = env_logger::Builder::new();
|
|
builder
|
|
.filter_level(LevelFilter::Trace)
|
|
.parse_default_env()
|
|
.filter(Some("backhand::filesystem::writer"), LevelFilter::Warn);
|
|
|
|
if let Ok(f_addr) = std::env::var("KRATA_FLUENT_ADDR") {
|
|
let target = SocketAddr::from_str(f_addr.as_str())?;
|
|
builder.target(Target::Pipe(Box::new(TcpStream::connect(target)?)));
|
|
}
|
|
|
|
builder.init();
|
|
|
|
mask_sighup()?;
|
|
|
|
let command = DaemonCommand::parse();
|
|
command.run().await
|
|
}
|
|
|
|
fn mask_sighup() -> Result<()> {
|
|
let flag = Arc::new(AtomicBool::new(false));
|
|
signal_hook::flag::register(signal_hook::consts::SIGHUP, flag)?;
|
|
Ok(())
|
|
}
|