src/backup/backup_info.rs: new list_groups helper
This commit is contained in:
parent
b31c8019d7
commit
11d89239c3
@ -37,7 +37,7 @@ lazy_static!{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// BackupGroup is a directory containing a list of BackupDir
|
/// BackupGroup is a directory containing a list of BackupDir
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
|
||||||
pub struct BackupGroup {
|
pub struct BackupGroup {
|
||||||
/// Type of backup
|
/// Type of backup
|
||||||
backup_type: String,
|
backup_type: String,
|
||||||
@ -137,6 +137,19 @@ impl BackupGroup {
|
|||||||
Ok(last)
|
Ok(last)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn list_groups(base_path: &Path) -> Result<Vec<BackupGroup>, Error> {
|
||||||
|
let mut list = Vec::new();
|
||||||
|
|
||||||
|
tools::scandir(libc::AT_FDCWD, base_path, &BACKUP_TYPE_REGEX, |l0_fd, backup_type, file_type| {
|
||||||
|
if file_type != nix::dir::Type::Directory { return Ok(()); }
|
||||||
|
tools::scandir(l0_fd, backup_type, &BACKUP_ID_REGEX, |_l1_fd, backup_id, file_type| {
|
||||||
|
if file_type != nix::dir::Type::Directory { return Ok(()); }
|
||||||
|
list.push(BackupGroup::new(backup_type, backup_id));
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
})?;
|
||||||
|
Ok(list)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Uniquely identify a Backup (relative to data store)
|
/// Uniquely identify a Backup (relative to data store)
|
||||||
@ -249,7 +262,7 @@ impl BackupInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn list_backups(base_path: &Path) -> Result<Vec<BackupInfo>, Error> {
|
pub fn list_backups(base_path: &Path) -> Result<Vec<BackupInfo>, Error> {
|
||||||
let mut list = vec![];
|
let mut list = Vec::new();
|
||||||
|
|
||||||
tools::scandir(libc::AT_FDCWD, base_path, &BACKUP_TYPE_REGEX, |l0_fd, backup_type, file_type| {
|
tools::scandir(libc::AT_FDCWD, base_path, &BACKUP_TYPE_REGEX, |l0_fd, backup_type, file_type| {
|
||||||
if file_type != nix::dir::Type::Directory { return Ok(()); }
|
if file_type != nix::dir::Type::Directory { return Ok(()); }
|
||||||
|
Loading…
Reference in New Issue
Block a user