file-matcher 0.7.0

A library to search files and folders based on the name pattern (regex, wildmatch, exact)
Documentation
extern crate tempdir;

use file_matcher::{FileNamed, FolderNamed, OneEntryCopier, Result};
use tempdir::TempDir;

#[test]
pub fn copy_one_file_exact() -> Result<()> {
    let tmp_dir = TempDir::new("test")?;

    let file = FileNamed::exact("cat.txt").within("tests/assets");
    let copied = file.copy(tmp_dir.path())?;

    assert_eq!(&copied, &tmp_dir.path().join("cat.txt"));

    std::fs::remove_file(copied)?;

    tmp_dir.close()?;
    Ok(())
}

#[test]
pub fn copy_one_file_exact_alias() -> Result<()> {
    let tmp_dir = TempDir::new("test")?;

    let file = FileNamed::exact("cat.txt")
        .alias("kitty.txt")
        .within("tests/assets");

    let copied = file.copy(tmp_dir.path())?;

    assert_eq!(&copied, &tmp_dir.path().join("kitty.txt"));

    std::fs::remove_file(copied)?;
    tmp_dir.close()?;
    Ok(())
}

#[test]
pub fn copy_one_folder_exact() -> Result<()> {
    let tmp_dir = TempDir::new("test")?;

    let folder = FolderNamed::exact("cat").within("tests/assets");

    let copied = folder.copy(tmp_dir.path())?;

    assert_eq!(&copied, &tmp_dir.path().join("cat"));

    std::fs::remove_dir_all(copied)?;
    tmp_dir.close()?;
    Ok(())
}

#[test]
pub fn copy_one_folder_exact_alias() -> Result<()> {
    let tmp_dir = TempDir::new("test")?;

    let folder = FolderNamed::exact("cat")
        .alias("kitty")
        .within("tests/assets");

    let copied = folder.copy(tmp_dir.path())?;

    assert_eq!(&copied, &tmp_dir.path().join("kitty"));

    std::fs::remove_dir_all(copied)?;
    tmp_dir.close()?;
    Ok(())
}