about summary refs log tree commit diff stats
path: root/src/main.rs
diff options
context:
space:
mode:
authoryuzu <yuzu@b9215c17-b818-4693-b096-d1e41a411fef>2025-07-08 07:12:59 +0000
committeryuzu <yuzu@b9215c17-b818-4693-b096-d1e41a411fef>2025-07-08 07:12:59 +0000
commit141e546e1d7a8385817b3edb46bd91b502563cd9 (patch)
treee215d8e4d4c79fee4b94e527cef8522b27ba5cec /src/main.rs
parent8f05a437d80a243e504b4fb5d26b53bbd7de9c47 (diff)
downloadsalaryman-141e546e1d7a8385817b3edb46bd91b502563cd9.tar.gz
salaryman-141e546e1d7a8385817b3edb46bd91b502563cd9.tar.bz2
salaryman-141e546e1d7a8385817b3edb46bd91b502563cd9.zip
working proof of concept -- minecraft
git-svn-id: svn+ssh://diminuette.aengel.lesbianunix.dev/salaryman/trunk@9 b9215c17-b818-4693-b096-d1e41a411fef
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs97
1 files changed, 0 insertions, 97 deletions
diff --git a/src/main.rs b/src/main.rs
deleted file mode 100644
index 09a9376..0000000
--- a/src/main.rs
+++ /dev/null
@@ -1,97 +0,0 @@
-use clap::Parser;
-use serde::{Deserialize, Serialize};
-
-use tokio::fs::read_to_string;
-
-use std::{net::IpAddr, path::PathBuf};
-
-use salaryman::model::{Service, ServiceConf};
-
-#[derive(Parser, Debug)]
-#[command(version, about, long_about = None)]
-struct Args {
-    #[arg(
-        short,
-        long,
-        value_name = "FILE",
-        help = "config file override",
-        default_value = "salaryman.toml"
-    )]
-    config: PathBuf,
-    #[arg(
-        short,
-        long,
-        value_name = "ADDR",
-        help = "IP address to bind API to",
-        default_value = "127.0.0.1"
-    )]
-    address: IpAddr,
-    #[arg(
-        short,
-        long,
-        value_name = "PORT",
-        help = "TCP Port to bind API to",
-        default_value = "3080"
-    )]
-    port: u16,
-}
-
-#[derive(Serialize, Deserialize, Debug)]
-struct Config {
-    address: Option<IpAddr>,
-    port: Option<u16>,
-    service: Vec<ServiceConf>,
-}
-impl Config {
-    fn new() -> Self {
-        Self {
-            address: None,
-            port: None,
-            service: Vec::new(),
-        }
-    }
-}
-
-async fn load_config(file: &PathBuf) -> Config {
-    let s: String = match read_to_string(file).await {
-        Ok(s) => s,
-        Err(_) => String::new(),
-    };
-    match toml::from_str(s.as_str()) {
-        Ok(c) => c,
-        Err(_) => Config::new(),
-    }
-}
-
-#[tokio::main]
-async fn main() -> Result<(), Box<dyn std::error::Error>> {
-    let args = Args::parse();
-    let conf: Config = load_config(&args.config).await;
-    let mut services: Vec<Service> = Vec::new();
-    for i in 0..conf.service.len() {
-        services.push(Service::from_conf(&conf.service[i]));
-        if conf.service[i].autostart {
-            services[i].start().await?;
-        }
-    }
-    let mut outs: Vec<(String, tokio::sync::mpsc::Receiver<String>)> = Vec::new();
-    for i in 0..services.len() {
-        if services[i].started().await {
-            outs.push((services[i].name().await, services[i].scan_stdout().await?));
-        }
-    }
-    for _i in 0..100 {
-        for out in 0..outs.len() {
-            if let Some(s) = outs[out].1.recv().await {
-                println!("got line from {} :: {}", outs[out].0, s);
-            }
-        }
-    }
-    for mut service in services {
-        match service.stop().await {
-            Ok(_) => println!("lol it was killed"),
-            Err(_) => println!("it either didn't exist, or failed to kill"),
-        }
-    }
-    Ok(())
-}