This commit is contained in:
Daniel Nagel 2026-09-07 15:47:31 +02:00
parent 7330cd47dc
commit dcb1307bb5
8 changed files with 1804 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target

10
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

11
.idea/HomelabWatchdog.iml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="EMPTY_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/HomelabWatchdog.iml" filepath="$PROJECT_DIR$/.idea/HomelabWatchdog.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

1718
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

10
Cargo.toml Normal file
View File

@ -0,0 +1,10 @@
[package]
name = "HomelabWatchdog"
version = "0.1.0"
edition = "2024"
[dependencies]
ratatui = "0.30.2"
tokio = { version = "1.53.1", features = ["full"] }
anyhow = "1.0.104"
crossterm = "0.29.0"

40
src/main.rs Normal file
View File

@ -0,0 +1,40 @@
mod host;
use tokio::time::{sleep, Duration};
use host::{Hosts, HostState};
async fn example() {
let time =5;
println!("Time .. On");
sleep(Duration::from_secs(time)).await;
}
#[tokio::main]
async fn main() {
let google = Hosts {
name:String::from("Google"),
state: HostState::Offline,
address:String :: from("8.8.8.8"),
last_checked: None,
state_since: tokio::time::Instant::now(),
};
let router = Hosts {
name:String::from("Unify Router"),
state: HostState::Offline,
address:String :: from("192.168.0.1"),
last_checked: None,
state_since: tokio::time::Instant::now(),
};
let pve1 = Hosts {
name:String::from("pve Server 1"),
state: HostState::Offline,
address:String :: from("192.168.0.231"),
last_checked: None,
state_since: tokio::time::Instant::now(),
};
let list = vec![google, router, pve1];
println!("{:?}", list);
example().await;
}