use std::collections::HashMap;
use tokio::sync::mpsc;
mod config;
mod push;
mod task;
#[allow(unreachable_code)]
#[tokio::main]
async fn main() {
let config = config::Config::load_default_config().unwrap();
let mut tasks: HashMap<String, task::Task> = HashMap::new();
for task_config in config.clone().tasks {
let task = task_config.to_task();
println!("{:?}", task.name);
tasks.insert(task.name.clone(), task);
}
let (command_sender, command_receiver) = mpsc::channel(10);
let user_input_handle = tokio::task::spawn(task::handle_user_input(command_sender));
let tasks_handle = tokio::task::spawn(task::handle_tasks(tasks, command_receiver, config));
tokio::try_join!(user_input_handle, tasks_handle).unwrap();
}