Added docker building.
This commit is contained in:
44
src/main.rs
44
src/main.rs
@ -25,27 +25,27 @@ async fn main() -> anyhow::Result<()> {
|
||||
|
||||
let token_lock = Arc::new(RwLock::new(None));
|
||||
|
||||
let bot_token = token_lock.clone();
|
||||
let server_token = token_lock.clone();
|
||||
[
|
||||
// Spawining bot task
|
||||
tokio::task::spawn(bot::start(args.bot.clone(), token_lock.clone())),
|
||||
// Spawning server task.
|
||||
tokio::task::spawn(error_wrap(server::create(
|
||||
args.server.clone(),
|
||||
token_lock.clone(),
|
||||
)?)),
|
||||
]
|
||||
.into_iter()
|
||||
// Turning all tasks in unirdered futures set.
|
||||
.collect::<FuturesUnordered<_>>()
|
||||
// Grab first completed future
|
||||
.take(1)
|
||||
// Take the value
|
||||
.next()
|
||||
// Await for it to complete
|
||||
.await
|
||||
// Unwrap (since we can guarantee that it's not empty).
|
||||
// Throw all errors by using ??. First for joining task, second from the task itself.
|
||||
.unwrap()??;
|
||||
|
||||
let web_server = server::create(args.server.clone(), server_token)?;
|
||||
let bot_future = bot::start(args.bot.clone(), bot_token);
|
||||
|
||||
let tasks = [
|
||||
tokio::task::spawn(bot_future),
|
||||
tokio::task::spawn(error_wrap(web_server)),
|
||||
];
|
||||
|
||||
let completed = tasks
|
||||
.into_iter()
|
||||
.collect::<FuturesUnordered<_>>()
|
||||
.take(1)
|
||||
.collect::<Vec<_>>()
|
||||
.await;
|
||||
|
||||
if let Some(fut) = completed.into_iter().next() {
|
||||
fut?
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user