diff options
| author | Teddy Wing | 2018-04-13 19:08:48 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2018-04-13 19:08:48 +0200 | 
| commit | 97dba8dedcf3fde65dfa9ae4aa57de0c446a66a1 (patch) | |
| tree | 34ee4ad6156f5bd4626e4f747a1f2898a18cecd0 | |
| parent | 9c52f6e0b4db6ce7c732e33feceb40743611d35c (diff) | |
| download | meetup-find-events-rss-97dba8dedcf3fde65dfa9ae4aa57de0c446a66a1.tar.bz2 | |
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.
| -rw-r--r-- | src/build_rss.rs | 14 | ||||
| -rw-r--r-- | src/lib.rs | 2 | ||||
| -rw-r--r-- | src/main.rs | 6 | 
3 files changed, 21 insertions, 1 deletions
| 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<Error>> { +    let events = event::find_upcoming_events()?; +    let channel = meetup_rss::generate(&events)?; +    meetup_rss::write(channel); + +    Ok(()) +} @@ -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();  } | 
