backup/datastore.rs: list all index files using walkdir crate
This commit is contained in:
parent
ff3d3100d4
commit
95cea65b04
|
@ -29,4 +29,5 @@ chrono = "0.4.6" # Date and time library for Rust
|
|||
openssl = "0.10.16"
|
||||
siphasher = "0.3"
|
||||
endian_trait = "0.6.0"
|
||||
walkdir = "2"
|
||||
|
||||
|
|
|
@ -134,11 +134,20 @@ impl DataStore {
|
|||
|
||||
let mut list = vec![];
|
||||
|
||||
// fixme: walk into subdirs ...
|
||||
for entry in std::fs::read_dir(base)? {
|
||||
let entry = entry?;
|
||||
if entry.file_type()?.is_file() {
|
||||
let path = entry.path();
|
||||
use walkdir::WalkDir;
|
||||
|
||||
let walker = WalkDir::new(&base).same_file_system(true).into_iter();
|
||||
|
||||
// make sure we skip .chunks (and other hidden files to keep it simple)
|
||||
fn is_hidden(entry: &walkdir::DirEntry) -> bool {
|
||||
entry.file_name()
|
||||
.to_str()
|
||||
.map(|s| s.starts_with("."))
|
||||
.unwrap_or(false)
|
||||
}
|
||||
|
||||
for entry in walker.filter_entry(|e| !is_hidden(e)) {
|
||||
let path = entry?.into_path();
|
||||
if let Some(ext) = path.extension() {
|
||||
if ext == "iidx" {
|
||||
list.push(path);
|
||||
|
@ -147,7 +156,6 @@ impl DataStore {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(list)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue