Added docker building.

This commit is contained in:
2023-02-21 19:56:36 +00:00
parent f5b43573c8
commit b6ab9c8888
31 changed files with 1476 additions and 75 deletions

View File

@ -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(())
}