diff options
| author | Teddy Wing | 2021-05-22 19:46:06 +0200 |
|---|---|---|
| committer | Teddy Wing | 2021-05-22 19:46:06 +0200 |
| commit | 5562492d935d55e5e707cae4a80002733c54eb5c (patch) | |
| tree | 798d787de246f6d249311b96bcd281d48cc1e35b | |
| parent | f44e89af155c17ee165271a8c55c5ea9246ce56c (diff) | |
| download | google-calendar-rsvp-5562492d935d55e5e707cae4a80002733c54eb5c.tar.bz2 | |
print_event(): Return a `Result`
| -rw-r--r-- | Cargo.lock | 7 | ||||
| -rw-r--r-- | Cargo.toml | 1 | ||||
| -rw-r--r-- | src/main.rs | 24 |
3 files changed, 27 insertions, 5 deletions
@@ -10,6 +10,12 @@ dependencies = [ ] [[package]] +name = "anyhow" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" + +[[package]] name = "autocfg" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -250,6 +256,7 @@ dependencies = [ name = "google-calendar-rsvp" version = "0.0.1" dependencies = [ + "anyhow", "base64 0.13.0", "chrono", "exitcode", @@ -4,6 +4,7 @@ version = "0.0.1" edition = "2018" [dependencies] +anyhow = "1.0.40" base64 = "0.13.0" chrono = "0.4.19" exitcode = "1.1.2" 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(()) } |
