@@ -9,11 +9,11 @@ extern crate deltachat;
9
9
10
10
use std:: borrow:: Cow :: { self , Borrowed , Owned } ;
11
11
use std:: io:: { self , Write } ;
12
+ use std:: path:: Path ;
12
13
use std:: process:: Command ;
13
14
14
15
use ansi_term:: Color ;
15
16
use anyhow:: { bail, Error } ;
16
- use async_std:: path:: Path ;
17
17
use deltachat:: chat:: ChatId ;
18
18
use deltachat:: config;
19
19
use deltachat:: context:: * ;
@@ -30,6 +30,7 @@ use rustyline::validate::Validator;
30
30
use rustyline:: {
31
31
Cmd , CompletionType , Config , Context as RustyContext , EditMode , Editor , Helper , KeyEvent ,
32
32
} ;
33
+ use tokio:: runtime:: Handle ;
33
34
34
35
mod cmdline;
35
36
use self :: cmdline:: * ;
@@ -301,7 +302,7 @@ async fn start(args: Vec<String>) -> Result<(), Error> {
301
302
let context = Context :: new ( Path :: new ( & args[ 1 ] ) . to_path_buf ( ) , 0 , Events :: new ( ) ) . await ?;
302
303
303
304
let events = context. get_event_emitter ( ) ;
304
- async_std :: task:: spawn ( async move {
305
+ tokio :: task:: spawn ( async move {
305
306
while let Some ( event) = events. recv ( ) . await {
306
307
receive_event ( event. typ ) ;
307
308
}
@@ -316,8 +317,8 @@ async fn start(args: Vec<String>) -> Result<(), Error> {
316
317
. output_stream ( OutputStreamType :: Stdout )
317
318
. build ( ) ;
318
319
let mut selected_chat = ChatId :: default ( ) ;
319
- let ( reader_s, reader_r) = async_std :: channel :: bounded ( 100 ) ;
320
- let input_loop = async_std :: task:: spawn_blocking ( move || {
320
+ let ( reader_s, reader_r) = async_channel :: bounded ( 100 ) ;
321
+ let input_loop = tokio :: task:: spawn_blocking ( move || {
321
322
let h = DcHelper {
322
323
completer : FilenameCompleter :: new ( ) ,
323
324
highlighter : MatchingBracketHighlighter :: new ( ) ,
@@ -339,7 +340,7 @@ async fn start(args: Vec<String>) -> Result<(), Error> {
339
340
Ok ( line) => {
340
341
// TODO: ignore "set mail_pw"
341
342
rl. add_history_entry ( line. as_str ( ) ) ;
342
- async_std :: task :: block_on ( reader_s. send ( line) ) . unwrap ( ) ;
343
+ Handle :: current ( ) . block_on ( reader_s. send ( line) ) . unwrap ( ) ;
343
344
}
344
345
Err ( ReadlineError :: Interrupted ) | Err ( ReadlineError :: Eof ) => {
345
346
println ! ( "Exiting..." ) ;
@@ -367,7 +368,7 @@ async fn start(args: Vec<String>) -> Result<(), Error> {
367
368
}
368
369
}
369
370
context. stop_io ( ) . await ;
370
- input_loop. await ?;
371
+ input_loop. await ?? ;
371
372
372
373
Ok ( ( ) )
373
374
}
@@ -458,11 +459,12 @@ async fn handle_cmd(
458
459
Ok ( ExitResult :: Continue )
459
460
}
460
461
461
- fn main ( ) -> Result < ( ) , Error > {
462
+ #[ tokio:: main]
463
+ async fn main ( ) -> Result < ( ) , Error > {
462
464
let _ = pretty_env_logger:: try_init ( ) ;
463
465
464
466
let args = std:: env:: args ( ) . collect ( ) ;
465
- async_std :: task :: block_on ( async move { start ( args) . await } ) ?;
467
+ start ( args) . await ?;
466
468
467
469
Ok ( ( ) )
468
470
}
0 commit comments