use anyhow::Result;
use std::fs::{create_dir_all, File};
use std::path::PathBuf;
use std::str::FromStr;
pub fn get_last_segment_of_url(url: &str) -> &str {
url.trim_end_matches('/').split('/').last().unwrap_or("")
}
pub fn create_file_in_dir(filename: &str) -> Result<File> {
let path = PathBuf::from_str(filename).unwrap();
if let Some(parent) = path.parent() {
create_dir_all(parent)?;
}
let file: File = File::create(filename)?;
Ok(file)
}
pub fn create_data_dir(dirname: &PathBuf) -> Result<PathBuf, anyhow::Error> {
if !dirname.exists() {
create_dir_all(&dirname)?;
}
Ok(dirname.clone())
}
pub fn create_dir(dirname: &PathBuf) -> Result<(), anyhow::Error> {
if !dirname.exists() {
create_dir_all(&dirname)?;
}
Ok(())
}
pub fn parse_comma_separated_list(s: &str) -> Vec<String> {
s.split(',')
.map(|s| s.trim().to_string())
.filter(|s| !s.is_empty())
.collect()
}