rouch 0.1.0

Fast `touch` rewrite in Rust
Documentation
use clap::Parser;
use std::{
    fs::{ File, create_dir_all},
    path::Path,
};

#[derive(Parser, Debug)]
pub struct Arguments {
    filenames: Vec<String>,
}

pub fn run(args: Arguments) -> Result<(), Box<dyn std::error::Error>> {
    if args.filenames.len() < 1 {
        return Err("Enter files to be created.. ".into());
    }
    for filename in args.filenames {
        let path = Path::new(match filename.as_bytes()[0] == b'/' {
            true => &filename[1..],
            _ => &filename,
        });
        let found = path.is_file();
        if found {
            println!("New file not created. File: {} already exists.", filename);
        } else {
            let parent = path.parent();
            match parent {
                Some(dir_path) => create_dir_all(dir_path)?,
                None => {}
            }
            File::create(path)?;
            println!("File: {} created.", filename);
        }
    }
    Ok(())
}