Clean up filenames produced by the cli (#400)

- Remove root
- Remove current directory symbol
- Avoid having duplicates filenames
This commit is contained in:
Luni-4 2020-12-23 16:10:43 +01:00 коммит произвёл GitHub
Родитель 0e7db3a92b
Коммит f9a4a9cbaf
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 12 добавлений и 6 удалений

Просмотреть файл

@ -61,17 +61,23 @@ impl Format {
Format::Yaml => ".yml",
};
// Remove . / \ .. symbols from a path to create a unique filename
// Remove root /
let path = path.strip_prefix("/").unwrap_or(path);
// Remove root ./
let path = path.strip_prefix("./").unwrap_or(path);
// Replace .. symbol with "_" to create a unique filename
let cleaned_path: Vec<&str> = path
.iter()
.filter(|v| {
if let Some(s) = v.to_str() {
![".", ".."].contains(&s)
.map(|os_str| {
let s_str = os_str.to_str().unwrap();
if s_str == ".." {
"_"
} else {
false
s_str
}
})
.map(|s| s.to_str().unwrap())
.collect();
// Create the filename