From 97dba8dedcf3fde65dfa9ae4aa57de0c446a66a1 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 13 Apr 2018 19:08:48 +0200 Subject: Output a feed to STDOUT when running the executable * Add a new module that contains a "main" library function that does the integration for generating the feed and outputting it to STDOUT. * Call this function from `main()` and have it output a real feed. --- src/build_rss.rs | 14 ++++++++++++++ src/lib.rs | 2 ++ src/main.rs | 6 +++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/build_rss.rs (limited to 'src') diff --git a/src/build_rss.rs b/src/build_rss.rs new file mode 100644 index 0000000..ab9d06d --- /dev/null +++ b/src/build_rss.rs @@ -0,0 +1,14 @@ +use std::error::Error; + +use meetup::event; +use meetup_rss; + +/// Requests the Meetup API, generates an RSS feed from the resulting events, +/// and writes the XML to standard output. +pub fn write_feed() -> Result<(), Box> { + let events = event::find_upcoming_events()?; + let channel = meetup_rss::generate(&events)?; + meetup_rss::write(channel); + + Ok(()) +} diff --git a/src/lib.rs b/src/lib.rs index 9f8b791..cc20fe5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,4 +2,6 @@ extern crate rss; extern crate meetup; +pub mod build_rss; + mod meetup_rss; diff --git a/src/main.rs b/src/main.rs index 5bc3131..81097ae 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,14 @@ extern crate getopts; +extern crate meetup_find_events_rss; + use getopts::Options; use std::env; use std::process::exit; +use meetup_find_events_rss::build_rss; + fn print_usage(opts: Options) { let brief = "usage: meetup-find-events-rss"; print!("{}", opts.usage(&brief)); @@ -37,5 +41,5 @@ fn main() { let meetup_token = opt_matches.opt_str("meetup-api-token").unwrap(); - println!("{}", meetup_token); + build_rss::write_feed().unwrap(); } -- cgit v1.2.3