diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 24 | 
1 files changed, 19 insertions, 5 deletions
| diff --git a/src/main.rs b/src/main.rs index 83f41d9..1a8316d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use anyhow;  use base64;  use chrono::DateTime;  use google_calendar3::api::{Event, EventAttendee}; @@ -37,7 +38,18 @@ impl fmt::Display for EventResponseStatus {  #[tokio::main] -async fn main() -> Result<(), Box<dyn std::error::Error>> { +async fn main() { +    match run().await { +        Ok(_) => (), +        Err(e) => { +            eprintln!("error: {}", e); + +            process::exit(exitcode::SOFTWARE); +        }, +    } +} + +async fn run() -> Result<(), Box<dyn std::error::Error>> {      let args: Vec<String> = env::args().collect();      let mut action_opt: Option<EventResponseStatus> = None; @@ -101,7 +113,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {          ).await;          if is_verbose { -            print_event(&event); +            print_event(&event)?;          }      } @@ -211,7 +223,7 @@ fn eid_from_email(email: &[u8]) -> String {      todo!();  } -fn print_event(event: &Event) { +fn print_event(event: &Event) -> anyhow::Result<()> {      if let Some(summary) = &event.summary {          println!("{}", summary);          println!(); @@ -223,12 +235,12 @@ fn print_event(event: &Event) {      if let Some(start) = &event.start {          if let Some(date_time) = &start.date_time { -            let start_time = DateTime::parse_from_rfc3339(&date_time).unwrap(); +            let start_time = DateTime::parse_from_rfc3339(&date_time)?;              print!("When         {}", start_time.format("%a %b %e, %Y %H:%M"));              if let Some(end) = &event.end {                  if let Some(date_time) = &end.date_time { -                    let end_time = DateTime::parse_from_rfc3339(&date_time).unwrap(); +                    let end_time = DateTime::parse_from_rfc3339(&date_time)?;                      print!(" – {}", end_time.format("%H:%M"));                  }              } @@ -278,6 +290,8 @@ fn print_event(event: &Event) {              }          }      } + +    Ok(())  } | 
