diff options
Diffstat (limited to 'src/utils.rs')
| -rw-r--r-- | src/utils.rs | 18 | 
1 files changed, 17 insertions, 1 deletions
| diff --git a/src/utils.rs b/src/utils.rs index 7d355b3..5444cb1 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -3,6 +3,8 @@ use std::env;  use std::fs;  use std::num::ParseIntError;  use std::path::PathBuf; +use std::fs::DirBuilder; +use std::io;  pub fn trim_extension(filename: &str) -> String { @@ -26,6 +28,20 @@ pub fn find_extension(input: &str) -> Option<&str> {      }  } +pub fn create_directories() -> io::Result<()> { +    let mut path = get_podcast_dir(); +    path.push(".rss"); +    if let Err(err) = DirBuilder::new().recursive(true).create(&path) { +        eprintln!( +                    "Couldn't create directory: {}\nReason: {}", +                    path.to_str().unwrap(), +                    err +                    ); +        return Err(err) +    } +    Ok(()) +} +  pub fn already_downloaded(dir: &str) -> HashSet<String> {      let mut result = HashSet::new(); @@ -45,7 +61,7 @@ pub fn already_downloaded(dir: &str) -> HashSet<String> {                          println!(                              "OsString: {:?} couldn't be converted to String",                              entry.file_name() -                        ); +                            );                      }                  }              } | 
